.-. .-. (: `----------------------' :) ) issue #34 // hub 30d ( (: .----------------------. :) `-' `-'
Free, Then Walk: Teardown Bugs, Ghost Publishers, and the Handles Nobody Closed
Three criticals in four weeks and every one of them is the same shape: an object gets freed on one path while another path still holds the pointer. MongoDB's CVE-2026-118383 is the loudest -- a use-after-free in the primary catch-up process that unauthenticated clients set up themselves with a crafted replication handshake. No creds, no auth wall, just a freed object waiting to be walked, and Datadog already shipped the full repro. Apache's CVE-2026-119618 is the identical fault line wearing a protocol hat: a race in mod_http2 connection/stream teardown, disclosed November 11, where stream state gets freed while a sibling thread is still reading it. Race windows in teardown are the classic UAF factory, and this one sits on every frontend that terminates h2. GPAC closes the set -- CVE-2026-128240, gf_sg_proto_del freeing prototype scene-graph nodes during XMT scene teardown in MP4Box through 26.07.0 and then using them, fixed in a2e5c62c, stamped CVSS 5.5 AV:L/UI:R 'crash-only'. Three codebases, three languages, one invariant nobody wrote down: who owns the pointer after the free.
The negative-day supply is worse than the criticals, because nobody is coming to fix it. libdca -- VideoLAN's unmaintained DTS decoder -- coughed up two out-of-bounds reads this month: tmp = *(state->buffer_start++) in bitstream.c with zero end-of-buffer check, so a malformed .dts frame marches the read pointer straight off the heap, plus a second one in scale-factor parsing oss-security. VLC 4.0 dropped the library; distros still ship it, so every ffmpeg/gstreamer front-end, car head unit, and set-top parser that links it inherits both bugs. Then there's dawgyg/AppleResearch -- a 510-star raw C dump of macOS findings the author never reported because they fell under bounty thresholds, believed unpatched and portable to adjacent Apple platforms. Free seed material for anyone willing to compile it. Same 'we bounded it after the fact' smell over at SoapyRemote 0.5.4, which just added bounds on stream header bytes/elems in acquireRecv plus mid-payload peer-close handling -- maintainer-speak for 'someone crashed the RPC path.' Fire truncated and oversized stream headers at a hostile-client-shaped server and see what the new checks actually catch.
The supply-chain thread is shorter and nastier: stolen Fireworks credentials were enough to push a poisoned extension through Cursor's marketplace and into developer editors BleepingComputer. No zero-day, no exotic primitive -- a third-party token signed a marketplace upload and the editor's own auto-fetch pipeline handled delivery. The questions worth asking tonight are boring and damning: does your marketplace verify publisher identity per-publish or per-session, and does revoking the upstream credential actually kill the publish path, or just the login? Same failure mode in a kernel hat over at google/gvisor, where e45d53c7, ab5f509c, and 5f7e73a9 quietly bolted the sandbox into a device cgroup, plugged a missing filestore cleanup path, and added proc-umount process-handle work. Sandbox maintainers don't touch descriptor cleanup without a bulletin unless somebody worked out how to hold a handle across container teardown. Grep Kata and Firecracker for the unpatched twin.
Identity keeps failing in the orthogonal direction: the gate holds, the inventory leaks. Bishop Fox's Cirro work shows a guest account under the most restrictive Entra ID settings still reads application properties -- redirect URIs, service principal names -- by traversing known app IDs, with Cirro v1.4.0 automating the walk. 'Restricted' guest is doing a lot of load-bearing work in that sentence, and the natural chain is known app ID -> redirect-URI abuse -> consent phishing -> token theft. On the wire, the tooling got sharper at the layers people skip: ProtoSpector decodes and re-encodes protobuf and gRPC on the fly inside Burp so you can mutate fields in binary HTTP bodies instead of guessing byte offsets, and h3fuzz throws 100k req/s over QUIC at HTTP/3-only origins where the classic stack throttles out. Pair them and the protobuf endpoint that only speaks h3 stops being a black box.
The RF desk ran its own version of the same story: reference signals nobody verifies. Ukraine's Lima system layers spoofing on top of wideband jamming so drones and guided weapons -- Oreshnik included -- resolve to coordinates in Peru, and Russian kit still leans hard on GNSS despite Chayka/eLoran fallbacks. It works because the receiver has no integrity check, which is exactly what the Turk Telecom/Calnex holdover data shows from the other side: kill the antenna at a base station and holdover runs out with no re-sync grace, sync degrading silently until backhaul errors surface. Two open benches turn that from anecdote into a number. osqzss/pluto-crpa computes adaptive weights on the PS, combines them in the PL, and re-transmits at GPS L1 (1575.42 MHz) into a COTS receiver -- real two-element null steering on AD9363 + Zynq-7010. And krakenrf/krakensdr_suite ripped out its Python layer entirely so real-time spectrum, audio demod, and MUSIC DoA estimation run concurrently on a Pi 5, with a Mode selector carving up tuner allocation.
The bench hardware matters because it changes who can run these tests at all. PortaPack Mayhem extended PRALINE TX/RX clock sync to the HackRF Pro's internal 25 MHz TCXO and killed SD write corruption by switching to single-beat SDIO IDMAC transfers -- clock-honest enough that the displayed frequency is worth trusting. ESP32DualBandWardriver promoted 6 GHz to main with Wardacted log sanitization (hashed MACs in exports), so sub-$20 tri-band wardriving is a mainline build, and hcxtools stopped counting zeroed PMKs as corrected, which matters when you're sorting crackable EAPOL captures from noise. And vanhoefm/papers already has the Wisec 2026 and SecDev 2026 decks at 3ea9f01f -- read the mechanics and pre-build the monitor-mode plus injection harness on mt76 or rtw89 before the papers go wide. So: pull the Mongo catch-up patch and grep rollback, resync, and oplog-fetch for the same free-then-walk; script interleaved RST/HEADERS/window-update against a pre-patch httpd and diff the fix for the exact lock ordering; run a heap groomer against GPAC's 'crash-only' XMT teardown before you believe CVSS 5.5; build .dts corpora around the libdca bitstream reader and check whether the walk leaks heap bytes instead of just segfaulting. The patch diff is the exploit -- you just have to read it first.
.-. .-. (: `--------------------' :) ) intel brief // #34 ( (: .--------------------. :) `-' `-'
- 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 month (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 [oss-security, seclists.org]. - 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 themselves. No creds, no auth wall -- just a crafted replication handshake and a freed pointer waiting to be walked. Full repro writeup, worth reading before the PoCs circulate [Datadog Security Labs, securitylabs.datadoghq.com].
- CVE-2026-119618 -- Apache mod_http2 race condition -- Praetorian's take on the November 11 disclosure of a critical race in the HTTP/2 module. Race conditions in connection/stream teardown are the classic UAF factory; expect patch-diff -> exploit within days given the exposure surface [Praetorian, praetorian.com].
- Cursor marketplace breach -> malicious Claude Code extension -- stolen Fireworks AI credentials let attackers push a poisoned extension through Cursor's marketplace, straight into developer editors. 'Trusted publisher' pipelines keep failing the same way; audit what your editor auto-fetches tonight [BleepingComputer, bleepingcomputer.com].
- Remote car unlocks across AU and US -- @infosec_au and @samwcyo popped a major automotive vendor and remotely unlocked vehicles in two regions; the AU writeup is live at shubs.io. Full chain from web foothold to vehicle command -- the reference model for modern bounty impact stories [@infosec_au, x.com].
- Entra ID restricted guests still enumerate app properties -- Bishop Fox shows that even the most restrictive guest settings leak application properties when you traverse known app IDs, and Cirro v1.4.0 automates the walk. 'Restricted' guest != invisible guest [Bishop Fox, bishopfox.com].
- ProtoSpector -- protobuf/gRPC tampering in Burp -- Doyensec shipped a Burp extension that decodes and re-encodes protobuf and gRPC messages on the fly, so you can finally mutate fields inside binary HTTP bodies instead of guessing at byte offsets. Bolt it on before your next mobile or backend assessment [Doyensec, blog.doyensec.com].
- gVisor quietly bolts the sandbox into a device cgroup -- same push plugs a missing filestore cleanup path (heads e45d53c7, ab5f509c, then 5f7e73a9 with proc-umount handle work). When a sandbox maintainer patches descriptor cleanup without a bulletin, assume somebody worked out how to hold a handle across teardown. Worth a 10-minute diff [google/gvisor, google/gvisor].
.-. .-. (: `----------------------' :) ) possibilities // #34 ( (: .----------------------. :) `-' `-'
- Fuzz every distro media front-end still linking libdca -- grab the two OOB reads (bitstream_fill_current pointer walk + scale-factor parse), build .dts corpora, and hammer ffmpeg/gstreamer front-ends and any car-head-unit or set-top parser that still links the abandoned lib; the heap walk is a prime heap-layout oracle for follow-on write primitives [inspired by seclists.org].
- Reproduce the MongoDB catch-up UAF against sibling replication paths -- diff the patched catch-up code, then hunt the same free-then-walk pattern in rollback, resync, and oplog-fetch handlers; unauth-reachable replication state machines are rarely buggy in exactly one place [inspired by securitylabs.datadoghq.com].
- Race-hunt mod_http2 stream teardown siblings -- pull the Apache patch, identify the interleaved state being freed, then point a threaded HTTP/2 client (many streams, rapid RST/GOAWAY) at the same window in nghttp2-based proxies and CDN front-ends that mirror the state machine [inspired by praetorian.com].
- Audit extension/marketplace publish paths for stolen-credential pushes -- the Cursor chain worked because a third-party token could sign a marketplace upload; test whether VS Code/JetBrains/other marketplaces verify publisher identity per-publish vs per-session, and whether revoked upstream creds actually kill the publish path [inspired by bleepingcomputer.com].
- Enumerate Entra tenants via known app IDs as a guest -- replicate the Bishop Fox traversal: guest account -> known application IDs -> read app properties (redirect URIs, service principal names) even under 'most restrictive' guest settings; chain into OAuth redirect or consent-phishing targeting [inspired by bishopfox.com].
- Diff gVisor filestore/proc-umount commits for the escape primitive -- pull e45d53c7, ab5f509c, and 5f7e73a9, map which filestore handle could be held across sandbox teardown, and check whether runsc's device-cgroup confinement actually blocks the /dev path the fix implies; sibling kernels (Kata, Firecracker) may share the teardown-order bug [inspired by google/gvisor].
- Run h3fuzz against HTTP/3-only edge targets -- Assetnote's ffuf fork pushes 100k req/s over QUIC; point it at HTTP/3-enabled origins where classic tools throttle, and pair with ProtoSpector for protobuf endpoints that only speak h3 [inspired by assetnote/h3fuzz].
.-. .-. (: `---------------------' :) ) github brief // #34 ( (: .---------------------. :) `-' `-'
The blogs were half noise this stretch, so the real signal sat in the diff stream: a researcher dumped a raw C corpus of unreported macOS findings because they didn't clear bounty thresholds, @xssdoctor kept shipping inert marker-file harnesses probing whether package installers execute transitive lifecycle scripts, and Google's sandbox kernel quietly tightened confinement in the same window a negative-day CVE watcher got its own updates. No conferenceware, no hype -- just harnesses and patch diffs worth pulling tonight.
- dawgyg/AppleResearch -- raw C dump of macOS vulnerability research the author never reported because it missed bounty thresholds; 510 stars in days. Some findings likely portable to iOS/iPadOS siblings. Free bug-hunting corpus -- triage before Apple does.
- xssdoctor/muse-dependency-lifecycle-parent-20261114 -- parent package ships zero hooks but pins a researcher-owned dep at a fixed commit; the leaf's postinstall writes a marker strictly inside its own dir. No network, no subprocess, no symlink. Clean oracle for transitive install-script execution; pair with the leaf repo.
- 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 window tooling; point it at gVisor and libdca consumers immediately.
- assetnote/h3fuzz -- ffuf fork with automatic HTTP/3 acceleration up to 100k req/s plus a persistent web console, keeping ffuf wordlists and matchers. Content discovery over QUIC at speeds classic tools can't touch.
- renniepak/CSPBypass -- latest push fixes the CSP matcher to handle scheme-relative URLs and multiple directives; pair it with Kettle's point that allowlisted hosts serving JSONP or redirects turn CSP into a pre-approved exfil list.