[ <- back-issue archive · live wire · issue #32 · HUB 7D · 2026-11-15 01:55 UTC ]
 .-.                     .-. 
(: `---------------------' :)
 )   issue #32 // hub 7d   ( 
(: .---------------------. :)
 `-'                     `-' 
> /var/archive/digest/32.bone :: [ HUB 7D // 242 sources analyzed // 2026-11-15 01:55 UTC ]

The Object Outlives the Check: Teardown Races, Stale Tokens, and the Trust Boundaries That Slipped

An object gets freed and used. A cookie id gets trusted after validation stopped. A marketplace push outlives the credentials that authorized it. Those are not three stories; they are one bug shape wearing different clothes. The memory bugs on the wire -- gf_sg_proto_del freeing prototype state during XMT teardown and walking it again, MongoDB's primary catch-up UAF reachable by unauthenticated clients, mod_http2 stream state under concurrent pressure -- share the fault line with Dancer's raw session id, Cursor's auto-fetched extension, and gVisor's process handles. Every layer caches authority and defers the use: parse now, free later; authenticate now, fetch later; fix now, disclose never. Hunt the seam between the check and the use, and the CVE label matters less than the primitive.

Start with memory, because the advisory language already undersells it. libdca's bitstream_fill_current() heap walk does tmp = *(state->buffer_start++) in bitstream.c with no end-of-buffer check; it is the second OOB read in the same abandoned decoder this week after scale-factor parsing. VLC 4.0 dropped the library, distros still ship it, and every media front-end linking it inherits the bug -- dead code, alive packages. GPAC/MP4Box through 26.07.0 hits CVE-2026-128240 / gf_sg_proto_del: prototype scene-graph nodes are freed during XMT teardown and then reused; the advisory says crash-only, CVSS 5.5, AV:L/UI:R, fixed in a2e5c62c. Treat 'crash-only' as a statement about the current heap, not a guarantee: build an XMT corpus, nest proto instantiation to control deletion order, place attacker-sized allocations adjacent to the freed proto state, and see whether the stale walk becomes a controlled free. Then race Apache: CVE-2026-119618 in mod_http2 is a stream-handling race disclosed November 11; script concurrent stream creation, cancellation, and window updates, interleave RST and HEADERS, and diff the fix commit for exact lock ordering. Worth a 10-minute diff. MongoDB's CVE-2026-118383 primary catch-up UAF is the worst pairing because Datadog says unauthenticated clients can set up the condition: lab a replica set, force a stepdown mid-write, and try to reallocate the freed object with attacker-influenced BSON before the stale walk. Unauth plus replication internals is the chase.

The trust-boundary bugs run on the same clock. Dancer <1.3400 passes the session cookie's id straight into whatever backend is configured -- YAML, DBI, Redis -- with zero validation (CVE-2015-10149); the id is treated as a trusted key long after the cookie proved nothing. Filter the id or jump past 1.3400, then grep Dancer2, Mojolicious, and Catalyst session plugins for the same raw-cookie-id-to-backend pattern. Cursor is the supply-chain version: stolen Fireworks credentials let attackers push a poisoned extension through the marketplace, so the editor's auto-fetch pipeline became the delivery mechanism. 'Marketplace trust' is load-bearing until you map which marketplaces sign packages versus merely authenticate publishers, and whether a revoked upstream credential actually kills a published extension. Bishop Fox's Cirro v1.4.0 Entra ID walk shows the authorization variant: the most restrictive guest settings still let a guest read application properties by traversing known app IDs. 'Restricted' guest is doing a lot of work in that sentence; replicate the known-app-ID traversal in your own tenant, then check redirect URIs, secret hints, and roles for the real leak. CSP allowlists and header-gated XSS fit here too: a validation decision made at one layer gets trusted at the sink, and JorianWoltjer/responder gives you a clean way to bake arbitrary response headers into a shareable URL and probe that seam.

Negative-day is not just abandoned code; it is any fix or finding that lands without a matching advisory. The gVisor push is the quiet version: proc-umount process-handle work, host-net child netns loopback handling, and file-lock wait registration all landed together, with no loud bulletin. Pull 5f7e73a9, trace which process handles survive umount and how host-net child netns loopback is wired, grep sibling paths that did not get the same treatment, and hammer teardown ordering under the new file-lock wait registration -- a handle that outlives its namespace is a sandbox-escape seed. dawgyg/AppleResearch is the research-side negative-day: a 510-star corpus of unreported macOS findings that fell under bounty thresholds, with the author flagging some as unpatched and portable to iOS/watchOS. Mine the memory-corruption entries against current XNU/dyld behavior before trusting the portability claim. And watch package-version comparators: osv.dev's RPM fix covers TuxCare/CentOS/OracleLinux/RHEL, but epoch/release-suffix edges (el8 vs el8_4, ~pre, ^dist tags) can still sort wrong and silently hide matching advisories. A hidden advisory is a negative-day patch with extra steps.

Radio is the same stale-authority problem at physics scale. A GNSS fix, a holdover clock, or a calibration phase is only as good as the integrity check that last validated it. Ukraine's Lima system layers spoofing on jamming and feeds false position fixes so drones and guided weapons resolve to Peru; Turk Telecom/Calnex holdover data shows a base station has no re-sync grace once GNSS drops -- timing and sync degrade silently. That is the dwell-time budget for any GNSS-denial op against timing-dependent backhaul. On the bench, osqzss/pluto-crpa is the cleanest new primitive: a two-element controlled-reception-pattern-array on a PlutoSDR (AD9363 + Zynq-7010), adaptive weights on the PS, combining in the PL, re-transmitted at GPS L1 into a COTS receiver. Extend it to a four-element null ring, push the weight combination into more PL fabric, and measure null depth against a chirp jammer at 1575.42 MHz before fielding it against a real spoofer. KrakenSDR's C++ suite keeps MUSIC DoA running concurrently with demod; bench it against the old Python stack on a Pi 5 and look for coherent-channel leakage when the Mode selector splits tuner usage. PortaPack Mayhem extended PRALINE TX/RX clock sync to the HackRF Pro's 25 MHz TCXO and killed SD write corruption with single-beat SDIO IDMAC transfers -- check the carrier against a GPSDO-referenced counter, then stress the SD path during rapid modulation switches. ESP32-C5 wardriver puts 2.4/5/6 GHz in a pocket; 6 GHz-only BSSIDs are the fresh dataset, but verify hashed-MAC sanitization survives your export format. And SoapyRemote 0.5.4 bounded stream header bytes/elems in acquireRecv plus mid-payload peer-close handling; throw truncated and oversized stream headers at a hostile client and see whether the bounds cover every RPC message type, not just the patched one.

The countermeasure is not a product category; it is a discipline: pin authority to the object's lifetime, then attack that pin. Pull the exact commit, isolate the changed invariant, and build the minimal primitive before the advisory traffic arrives -- the patch-to-exploit loop Miessler flagged around Dawn Song's team is the right model, and Artex's 'machine speed' recon -> exploitation -> privileged access chain at under three hours is the clock. For memory bugs, fuzz teardown under thread contention and control free order, not just the parse path. For trust bugs, inventory every auto-fetch and every raw id that crosses a backend boundary, and test revocation, not just authentication. For RF, measure holdover decay and null depth before trusting a spoofed fix or a clean carrier. The verdict is blunt: if the object, token, or timing reference can outlive its check, you have a bug -- and usually a chain, not a crash.

 .-.                    .-. 
(: `--------------------' :)
 )   intel brief // #32   ( 
(: .--------------------. :)
 `-'                    `-' 
> /var/archive/digest/32.intel :: [ 2026-11-15 01:55 UTC ]
  • libdca bitstream_fill_current() heap walk -- the unmaintained VideoLAN DTS decoder does tmp = *(state->buffer_start++) in bitstream.c with zero end-of-buffer check, so a malformed .dts frame marches the pointer straight off the heap. Second OOB read in the same library this week (scale-factor parsing was the first); VLC 4.0 already dropped it but distros still ship the lib, so every media front-end that links it inherits the bug [seclists.org].
  • CVE-2026-119618 -- Apache mod_http2 race condition -- Praetorian walks the critical race in the HTTP/2 module disclosed November 11; race windows in stream handling are the classic path to UAF or state confusion under concurrent request pressure. Patch your frontends before someone scripts the interleaving [praetorian.com].
  • CVE-2026-118383 -- MongoDB primary catch-up use-after-free -- Datadog reproduced a critical UAF in the server's primary catch-up process that unauthenticated clients can set up. 'Unauth' plus 'replication internals' is the worst pairing on the wire this week; check your exposed mongod ports [securitylabs.datadoghq.com].
  • Cursor marketplace breach -> malicious Claude Code extension -- stolen Fireworks AI credentials let attackers push a poisoned extension through Cursor's marketplace, a straight supply-chain hijack of the editor pipeline. Audit what your IDE auto-fetches and pin extension provenance [bleepingcomputer.com].
  • FBI flash: Artex automates intrusions at 'machine speed' -- the open-source tool chains recon -> exploitation -> privileged access in under three hours, collapsing the dwell-time defenders used to count on. Risky Business #859 calls the damage 'crisis level'; assume your scan-to-own window just shrank [therecord.media].
  • Cirro enumerates Entra ID as a restricted guest -- Bishop Fox shows the directory's most restrictive guest settings still let a guest read application properties by traversing known app IDs, with Cirro v1.4.0 automating the walk. 'Restricted' guest is doing a lot of work in that sentence [bishopfox.com].
  • CVE-2026-128240 -- GPAC gf_sg_proto_del use-after-free -- MP4Box through 26.07.0 frees prototype scene-graph nodes during XMT scene teardown and then keeps using them; advisory says crash-only (CVSS 5.5, AV:L/UI:R), fixed in a2e5c62c. Every 'crash-only' UAF deserves one afternoon with a heap groomer before you believe it [seclists.org].
  • dawgyg/AppleResearch raw C dump -- a 510-star corpus of macOS vuln research the author never reported because it fell under bounty thresholds, with findings he believes are unpatched and portable to other Apple OSes. Free bug-hunting seed material [dawgyg/appleresearch].
 .-.                      .-. 
(: `----------------------' :)
 )   possibilities // #32   ( 
(: .----------------------. :)
 `-'                      `-' 
> /var/archive/digest/32.possibilities :: [ 242 sources ]
  • Fuzz every distro-shipped consumer of libdca -- grab the bitstream.c and scale-factor OOB pair, build a harness around ffmpeg/gstreamer/anything linking libdca, and check whether the heap walk leaks adjacent heap contents rather than just crashing; VLC 4.0 dropped it but the library is still everywhere [inspired by seclists.org].
  • Race mod_http2 stream teardown under interleaved RST/HEADERS -- script concurrent stream creation, cancellation, and window updates against a pre-patch Apache build to see if the CVE-2026-119618 race yields more than a crash; diff the fix commit for the exact lock ordering [inspired by praetorian.com].
  • Groom the MongoDB catch-up UAF -- Datadog says unauth clients can set up the primary catch-up condition; lab a replica set, force a stepdown mid-write, and watch whether the freed object can be reallocated with attacker-influenced BSON before the stale walk [inspired by securitylabs.datadoghq.com].
  • Turn the GPAC proto UAF into a controlled free -- XMT scene teardown frees proto nodes then reuses them; craft an XMT file with attacker-sized allocations adjacent to the freed proto state and check whether the 'crash-only' advisory undersells it [inspired by seclists.org].
  • Enumerate Entra ID app IDs as a guest -- replicate Cirro's known-app-ID traversal against your own tenant with the most restrictive guest settings enabled, then check which app properties (redirect URIs, secret hints, roles) leak; the fix scope is the interesting part [inspired by bishopfox.com].
  • Audit extension/marketplace provenance in your own toolchain -- the Cursor breach shows a marketplace push with stolen vendor creds is enough; inventory every editor extension and CI plugin your org auto-fetches, verify signing, and test whether a revoked-cred push still propagates [inspired by bleepingcomputer.com].
  • Mine dawgyg's corpus for cross-OS portability -- the author flags macOS findings as potentially portable to iOS/watchOS; pick the memory-corruption entries, check current XNU/dyld behavior, and see which ones still reproduce on adjacent Apple platforms [inspired by dawgyg/appleresearch].
 .-.                     .-. 
(: `---------------------' :)
 )   github brief // #32   ( 
(: .---------------------. :)
 `-'                     `-' 
> /var/archive/digest/32.github :: [ code & repo tradecraft ]

Quiet on the news wires for stretches, so the real signal sat in the diff stream: a raw C dump of unreported macOS research landing with 500+ stars overnight, @xssdoctor pushing yet another inert marker-file battery against Muse's install lifecycle, and Google's sandbox and GPU layers (gVisor, ANGLE, Dawn, Brotli) all getting touched in the same stretch -- the exact container/browser substrate everything else trusts. Meanwhile small-tool maintainers shipped quiet fixes worth pulling: a CSP matcher repair, a query-param exploit-page server, and a negative-day patch watcher. No conferenceware, no hype -- just harnesses and suspect diffs.

  • dawgyg/AppleResearch -- raw C dump of macOS vuln research the author never reported for missing bounty thresholds; he believes much of it is unpatched and portable to other Apple OSes. A free corpus of bug-hunting leads, pull it before Apple does [dawgyg/appleresearch].
  • xssdoctor/muse-grid-card-preview-20261114 -- static grid card preview where bun install pulls a pinned runtime dep and the build imports card copy from muse-grid-card-runtime-20261114 before writing dist/index.html. Another clean supply-chain seam in the Muse install matrix [xssdoctor/muse-grid-card-preview-20261114].
  • renniepak/CSPBypass -- the CSP matcher now handles scheme-relative URLs and multiple directives, fixing cases where the bypass finder misjudged an allowlist. Pair it with @albinowax's JSONP/redirect pivot work when your XSS is 'blocked' by CSP [renniepak/cspbypass].
  • JorianWoltjer/responder -- spins up shareable HTML/JS exploit pages with custom response headers baked into the URL; latest push adds nested autocomplete in SVG/XML. Handy for header-gated XSS proofs you can hand to a triager as a link [jorianwoltjer/responder].
  • vitorfhc/videt -- watches major OSS repos for silent security patches landing before a CVE is assigned, then checks whether the fix is actually reachable. Negative-day hunting tooling; point it at the gVisor filestore-cleanup commits from this week [vitorfhc/videt].