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

Teardown Races, Silent Patches, and Trust Gates That Were Never Really Locked

The week's core bug class is embarrassingly consistent: objects that die before their callers do, on paths you can reach before you ever authenticate. CVE-2026-119618 is a race in Apache's HTTP/2 request handling that corrupts heap memory pre-auth across every h2-enabled vhost -- plausibly RCE, definitely patch-first-questions-later. CVE-2026-118383 hands the same shape to MongoDB, where an unauthenticated client triggers a use-after-free in the primary catch-up path, and a replication-protocol UAF is exactly the bug that graduates from crash to code execution with a patient heap groom. The local variants round it out: CVE-2026-128240 frees prototype scene-graph nodes in GPAC's gf_sg_proto_del during XMT teardown and then walks them again, and libdca's bitstream_fill_current() in bitstream.c does tmp = *(state->buffer_start++) with zero end-of-buffer check, so a crafted .dts frame marches the pointer straight off the heap -- twice in one week on a decoder VLC 4.0 already dropped but distros still ship. Different binaries, identical disease: lifetime discipline that assumes serialization, teardown order that assumes nobody is pushing concurrent state transitions. The hunting move is mechanical -- diff the fix commits, replay the trigger under thread contention, then grep sibling implementations (nghttp2, h2o, mongos oplog application, ffmpeg's dca decoder, liba52, libmad) for the same increment-before-check and free-then-walk idioms. The bug class almost never lives in one codebase.

The second fault line is the widening negative-day window -- the gap between a silent fix landing in a repo and a CVE getting assigned -- and this week proved vendors are losing that race from both ends. N-able's '4EverAble2Shell' dropped cryptominers on N-central hosts within hours of PoC release, and the kicker is that 19 of 21 popped boxes were running the latest update, which means the shipped 'fix' is bypassable through a sibling code path -- likely the same deserialization or file-write primitive reached via an alternate route. Meanwhile Dawn Song's team is turning patch diffs directly into working exploits, which is the exact workflow you should already be running by hand: pull the update, diff the vulnerable handler against the previous build, and hunt what the maintainer quietly touched without a bulletin. Point vitorfhc/videt at high-value OSS repos -- media parsers, container runtimes, the gVisor teardown-and-lock merges that landed with zero advisory noise -- and race the CVE assignment. That window is where dupes die and originals get paid.

The third pattern is trust gates that turn out to be decorative the moment somebody actually leans on them. Cursor's marketplace breach ran on stolen Fireworks AI credentials pushing a malicious Claude Code extension through the publish pipeline -- meaning a single bearer token was the only thing between attackers and arbitrary code executing in every dev box that auto-fetches on startup. Audit every registry your tooling consumes and ask whether publishing is gated by anything stronger than a token; the 'marketplace' was the trust boundary that broke. The web-tier mirror is Kettle's 'Blind Trust': an allowlisted host serving JSONP, uploads, or open redirects converts your blocked XSS straight back into credential exfil, because on most prod targets CSP is functionally a pre-approved exfil list. Chain renniepak/CSPBypass's matcher against your target's allowlist, and mirror the cookie-plus-GraphQL angle from the @0xLupin engagement chatter -- queries that take account identifiers from client input instead of the session are the classic IDOR-through-GraphQL that still pays. Same lesson, three surfaces: an allowlist or token is not a control, it's a suggestion.

Down at the physical layer the week's signal is that constellation dependence is a hard operational kill, not a nuisance. Calnex ITSF 2026 measurements show base-station timing rotting the instant GNSS drops -- no re-sync grace, holdover exhausts, sync degrades silently underneath -- which is precisely the failure mode a $30 L1 spoofer produces on demand. Lima layers spoofing on top of jamming so drones and guided munitions place themselves an ocean away, and Russian kit still leans on GNSS despite Chayka/eLoran fallbacks. Bench it yourself: GPS-SDR-SIM on a HackRF, walk a u-blox and a cellular timing module off true time, log 1PPS drift through holdover exhaustion, and you have a measurable kill-clock for any GNSS-dependent target. Then point osqzss/pluto-crpa at your own jammer -- two elements, PS-computed adaptive weights, null steered in the PL, re-transmitted at L1 into a COTS receiver -- and find out empirically where a two-element array folds against jammers from split bearings.

The capture tooling got materially better this week, which matters because new capture surface means new parser surface. KrakenSDR's V2 suite sheds Python entirely -- real-time spectrum and audio demod run concurrently with MUSIC DoA on Pi 4/5 -- so coherent passive DF no longer chokes on the GIL, though you should bench whether concurrent demod introduces covariance jitter that skews the estimate. PortaPack Mayhem n_261115 kills SD write corruption via single-beat SDIO IDMAC transfers and fixes stale spectrum updates during modulation changes -- if you trusted the old waterfall mid-sweep, rerun the captures. Kismet's uwifi builds Linux USB 802.11 drivers unmodified on libusb for monitor mode on macOS, which is a fresh userspace parser begging for malformed bulk URBs and hot-unplug fuzzing, and the ESP32-C5 wardriver v2.4.1 puts 2.4/5/6 GHz capture with hashed MACs in your pocket. rtl_433's newlib/ESP-IDF fixes mean sub-GHz ISM stakeouts now port onto raw ESP32.

So the week's actual to-do list, in priority order: patch h2 vhosts before you finish reading, then diff the mod_http2 fix and hammer sibling HTTP/2 implementations under concurrent HEADERS/CONTINUATION/DATA contention. Groom the MongoDB catch-up UAF under controlled heap layout and watch for type confusion on the freed slot. Build an ASAN harness around libdca's dca_frame_parse and scale-factor path, then grep every distro-shipped descendant for the unchecked buffer_start++ walk. Run videt against the repos that just shipped quiet teardown and cleanup commits. And audit what your editor, your CI, and your browser trust on startup -- because this week proved, three separate times, that the gate was a token, the token was stolen, and the 'fix' didn't cover the sibling path.

 .-.                    .-. 
(: `--------------------' :)
 )   intel brief // #46   ( 
(: .--------------------. :)
 `-'                    `-' 
> /var/archive/digest/46.intel :: [ 2026-11-15 05:07 UTC ]
  • Apache mod_http2 race -> heap corruption -- CVE-2026-119618 is a race in HTTP/2 request handling that corrupts heap memory pre-auth and plausibly lands remote code execution. Unauthenticated, network-reachable, and every h2-enabled vhost is a target -- patch before you read the rest of this brief [Praetorian].
  • N-able '4EverAble2Shell' zero-day exploited hours after PoC -- N-central RCE dropped cryptominers within hours of PoC release, and 19 of 21 popped hosts were on the latest update, so the 'patch' looks bypassable. Treat as actively exploited RCE, not a disclosure footnote [BleepingComputer].
  • GPUStack auth bypass under active scan -- CVE-2026-102895 is a trivial authentication bypass in GPUStack before 2.2.0 that hands over GPU cluster management. ISC already sees exploit attempts in the wild; if you run GPU infra exposed, this is a full-cluster takeover primitive [SANS ISC].
  • MongoDB unauth use-after-free in catch-up path -- CVE-2026-118383 lets an unauthenticated client trigger a use-after-free in the server's primary catch-up path. Watch for crashes and odd replication behavior; a replication-protocol UAF reachable without creds is exactly the bug class that turns into RCE with heap grooming [Datadog Security Labs].
  • libdca bitstream pointer walks off the heap -- bitstream_fill_current() in bitstream.c does tmp = *(state->buffer_start++) with zero end-of-buffer check, so a crafted .dts frame marches the pointer straight off the heap. Second OOB read in the same abandoned VideoLAN DTS decoder this week; VLC 4.0 dropped it but distros still ship the lib, so every media front-end that links it inherits the bug [oss-security].
  • GPAC/MP4Box use-after-free in gf_sg_proto_del -- CVE-2026-128240 frees prototype scene-graph nodes during XMT scene teardown and then walks them again (CWE-416, CVSS 5.5, AV:L/UI:R, 'crash-only' per the advisory). Fixed in a2e5c62c; local vector, but XMT parsing keeps handing out memory-safety bugs in the same code paths [oss-security].
  • CSP allowlists turned into credential exfil pipes -- Kettle shows that an allowlisted host serving JSONP, uploads, or open redirects turns blocked XSS right back into token theft ('Blind trust'). Vendors still pitch CSP like a magic seatbelt; on most prod targets it's just a pre-approved exfil list [James Kettle / @albinowax].
  • FBI: Artex automates intrusions in under three hours -- Open-source tool Artex chains recon -> exploit -> privileged access at 'machine speed', cutting initial targeting to privileged access under three hours per the FBI flash. Dwell-time slack just evaporated for defenders; expect your external attack surface to be enumerated faster than your IR team wakes up [The Record].
 .-.                      .-. 
(: `----------------------' :)
 )   possibilities // #46   ( 
(: .----------------------. :)
 `-'                      `-' 
> /var/archive/digest/46.possibilities :: [ 325 sources ]
  • Fuzz the mod_http2 race window with concurrent h2 streams -- Grab the Apache httpd tree, diff the fix commit against the vulnerable h2 stream-handling code, and hammer the exact request-state transitions with dozens of concurrent HEADERS/CONTINUATION/DATA frames under thread contention. Sibling HTTP/2 implementations (nghttp2 frontends, h2o, Caddy) likely share the same teardown-order assumptions [inspired by Praetorian].
  • Diff the N-able patch for the bypass -- 19 of 21 popped hosts were fully patched, so the shipped fix is incomplete. Pull the N-central update, diff the vulnerable endpoint's handler against the previous build, and hunt the sibling code path the 'fix' missed -- likely the same deserialization or file-write primitive reached via an alternate route [inspired by BleepingComputer].
  • Groom the MongoDB catch-up UAF -- The catch-up path is reachable unauthenticated; replay the trigger under controlled heap layout and watch for object-type confusion on the freed slot. Sibling replication code in mongos and the oplog application path may share the same lifetime bug [inspired by Datadog Security Labs].
  • Audit every distro binary still linking libdca -- Two OOB reads in one week on an unmaintained DTS decoder means the whole bitstream.c reader is unaudited. Fuzz every entry point with a length-bounded corpus, then grep ffmpeg's dca decoder and libavcodec's DTS parser for the same missing end-of-buffer checks on scale-factor and LFE parsing [inspired by oss-security].
  • Chain CSPBypass gadgets against allowlisted JSONP endpoints -- Take renniepak/CSPBypass's fixed matcher (now handling scheme-relative and multiple directives), enumerate your target's allowlist, and probe each host for JSONP callbacks, upload reflection, and open redirects to smuggle tokens out past the policy [inspired by James Kettle].
  • Hunt negative-day patches with videt -- videt watches major OSS repos for silent security fixes landing before a CVE is assigned, then checks reachability. Point it at the media-parser and container-runtime repos from this week's briefs -- the gVisor filestore-cleanup commits with no bulletin are exactly the pattern it exists to catch [inspired by vitorfhc/videt].
  • Reproduce the git protocol-v2 unborn-HEAD escape locally -- The loopback smart-HTTP harness proves a malicious protocol-v2 server can push a symref resolution outside .git. Extend it to ssh:// and file:// transports and check whether git-lfs and partial-clone promisor configs widen the write primitive [inspired by xssdoctor].
 .-.                     .-. 
(: `---------------------' :)
 )   github brief // #46   ( 
(: .---------------------. :)
 `-'                     `-' 
> /var/archive/digest/46.github :: [ code & repo tradecraft ]

The repo wire this week is dominated by inert exploit oracles and negative-day tooling: xssdoctor shipped both a loopback protocol-v2 harness proving git clients swallow an unsafe unborn HEAD symref and a partial-archive fixture tied to CVE-2024-32004, while vitorfhc's videt formalizes the hunt for silent security patches landing before CVEs. Meanwhile renniepak fixed CSPBypass's matcher for scheme-relative directives and multiple headers, and Google's gwpsan untangled seccomp and CFI coexistence -- the exact machinery you'd want when grooming production binaries for the race-condition bugs filling this week's advisories.

  • xssdoctor/git-cve-2026-113408-poc -- Python harness spinning a loopback-only smart HTTP fixture that feeds a git client an unsafe unborn HEAD symref over protocol-v2, demonstrating branch-update resolution escaping the .git directory (symref -> path escape outside .git). Clean, inert oracle you can run locally in five minutes.
  • xssdoctor/muse-git-local-partial-archive-20261113 -- Inert local partial-repo fixture tied to CVE-2024-32004; its config carries a promisor upload-pack command that writes a fixed marker only, confirming code execution without touching the network. Textbook controlled reproduction of the partial-clone config-injection class.
  • vitorfhc/videt -- Python watcher that flags silent security patches in major OSS repos during the negative-day window between commit and CVE assignment, then checks whether the fix is actually reachable. Point it at your dependency tree and let it diff the quiet fixes for you.
  • renniepak/CSPBypass -- CSPBypass.com's latest push fixes the CSP matcher to handle scheme-relative URLs and multiple directives -- directly relevant to Kettle's 'Blind trust' research, since a broken matcher means missed allowlist gadgets on real prod policies.
  • google/gwpsan -- Google's sampling-based sanitizer for production binaries restructured its seccomp incompatibility check and exempted GWPSan interceptors from CFI so both coexist in one build -- the tooling you want running when you chase heap races like the mod_http2 and MongoDB bugs in this week's briefs.