CVE-2026-6307 PoC: Longinus - 2 Grenzen in einem Bug https://nebusec.ai/research/v8-cve-2026-6307-writeup/)
Besser bekannt als 'Longinus': 2 Grenzen in einem Bug
Repository: https://github.com/J4ck3LSyN-Gen2/CVE-2026-6307-Longinus
Ausführlicher Bericht: OS-IS-CVE-2026-6307-07-2026.md
Technische Analyse: Nebula Security - Longinus: 2 Boundaries in One Bug
[!WARNING] Dieser Code wird WIE BESEHEN nur zu Bildungs- und Forschungszwecken bereitgestellt. Verwenden Sie diesen PoC nicht auf Produktionssystemen, gemeinsamen Umgebungen oder nicht autorisierten Zielen.
- Dieser Exploit demonstriert eine kritische Schwachstelle zur Remote-Codeausführung (RCE) (CVE-2026-6307), die die Chrome-Renderer-Sandbox vollständig gefährden kann.
- Das Ausführen oder Hosten dieses Codes kann Antiviren-Erkennungen, Sicherheitsüberwachungswarnungen oder rechtliche Konsequenzen bei Missbrauch auslösen.
- Die Autoren und Repository-Betreiber übernehmen keine Haftung für Schäden, Missbrauch oder illegale Aktivitäten, die durch diesen Code entstehen.
- Ausschließlich in isolierten Laborumgebungen mit entsprechender Autorisierung verwenden. Nur für defensive Forschung, Schwachstellenanalyse und Blue-Team-Tests vorgesehen.
Dieses Repository enthält einen Proof-of-Concept (PoC) für CVE-2026-6307 ("Longinus"), eine schwerwiegende Typenkonfusion-Schwachstelle im Google V8 TurboFan Compiler. Der Fehler entsteht durch einen unvollständigen Gleichheitsvergleich in FrameStateFunctionInfo während des Einbetten von JS-zu-WebAssembly-Aufrufen (JS-to-WebAssembly call inlining), wobei speziell das Feld signature_ von JSToWasmFrameStateFunctionInfo nicht berücksichtigt wird.
Diese Schwachstelle ermöglicht ein fehlerhaftes Zusammenführen von FrameState-Knoten mit unterschiedlichen Rückgabetypen (externref vs i64). Bei der lazy deoptimization interpretiert der Deoptimizer Rückgaberegister falsch, was mächtige beliebige Lese-/Schreib-Primitiven ergibt:
addrof(target) – Leaken der Adresse eines JavaScript-Objekts als BigInt.fakeobj(addr) – Materialisieren eines gefälschten JavaScript-Objekts an einer beliebigen Adresse.Diese Primitiven durchbrechen sowohl die V8-Heap-Sandbox als auch die Renderer-Sandbox-Grenzen in einer einzigen Schwachstelle, wenn sie mit geeigneten Folgetechniken kombiniert werden.
Auswirkung: Remote-Codeausführung (RCE) im sandboxierten Renderer-Prozess durch bösartiges JavaScript (z. B. eine präparierte Webseite).
FrameState-Knoten, die JSToWasmFrameStateFunctionInfo einbetten.==) für FrameStateFunctionInfo vergleicht nicht die WebAssembly-Funktionssignatur (signature_).FrameStates mit unterschiedlichen Rückgabetypen zusammen.externref wird fälschlich als i64 interpretiert → Zeigerbits werden als BigInt geleakt (addrof).i64 wird fälschlich als externref interpretiert → Ganzzahlbits werden als getaggte Referenz materialisiert (fakeobj).Ausführliche Darstellungen, TurboFan-IR-Ausschnitte und Deoptimizer-Verhalten finden Sie im vollständigen Nebula Security Write-up und im beigefügten Analysebericht.
| Datei | Beschreibung |
|---|---|
poc.js | Kern-PoC, der addrof- und fakeobj-Primitiven sowie eine grundlegende Lese-/Schreib-Demo demonstriert. |
gen.py | Hilfsskript zum Generieren von PoC-Varianten oder Payload-Gerüsten. |
val.py | Validierungs- und Testhilfsprogramme für die Primitiven. |
cve-2026-6307_d8_execution.yml | Konfiguration/Workflow zum Ausführen des PoC in einer V8 d8-Shell. |
cve-2026-6307_longinus_poc.yar | YARA-Regel zur Erkennung der PoC-Signatur oder verwandter Muster. |
d8-Binärdatei aus etwa März–Juni 2026).--allow-natives-syntax --expose-wasmd8 mit --turbo-dynamic-map-checks oder ähnlich zum Debuggen.# Using d8 shell
./d8 --allow-natives-syntax --expose-wasm poc.js
Erwartetes Verhalten (auf anfälligem Build):
addrof-Leak eines Dummy-Objekts.fakeobj-Materialisierung (Identitätsprüfung bestanden).Hinweis: Vollständige RCE erfordert zusätzliche Arbeit (Offset-Berechnung, WASM/GC-Interaktion, Sandbox-Escape). Dieser PoC konzentriert sich auf die Kernprimitiven.
Die enthaltene .yar-Regel kann in Sicherheitstools verwendet werden, um das PoC-Muster in Skripten oder im Speicher zu identifizieren.
Haftungsausschluss: Dieses Repository wird ausschließlich zu Bildungs-, Verteidigungs- und Forschungszwecken bereitgestellt. Nicht auf nicht autorisierten Systemen verwenden. Die Autoren übernehmen keine Haftung für Missbrauch.
Bei Fragen, Beiträgen oder Variantenentwicklung öffnen Sie ein Issue oder einen PR.
Zuletzt aktualisiert: Juli 2026