
CVE-2026-6307 PoC: Longinus - 2 Boundaries in One Bug https://nebusec.ai/research/v8-cve-2026-6307-writeup/)
Meglio conosciuto come 'Longinus': 2 confini in un unico bug
Repository: https://github.com/J4ck3LSyN-Gen2/CVE-2026-6307-Longinus
Rapporto dettagliato: OS-IS-CVE-2026-6307-07-2026.md
Analisi tecnica: Nebula Security - Longinus: 2 confini in un unico bug
[!WARNING] Questo codice è fornito COSÌ COM'È solo per scopi didattici e di ricerca. Non utilizzare questo PoC su sistemi di produzione, ambienti condivisi o su qualsiasi destinazione non autorizzata.
- Questo exploit dimostra una vulnerabilità critica di esecuzione remota di codice (RCE) (CVE-2026-6307) in grado di compromettere completamente il sandbox del renderer Chrome.
- L'esecuzione o l'hosting di questo codice potrebbe attivare rilevamenti antivirus, allarmi di monitoraggio della sicurezza o conseguenze legali in caso di uso improprio.
- Gli autori e i manutentori del repository declinano ogni responsabilità per qualsiasi danno, uso improprio o attività illegale derivante da questo codice.
- Usare esclusivamente in ambienti di laboratorio isolati con la dovuta autorizzazione. Destinato esclusivamente a ricerca difensiva, analisi delle vulnerabilità e test del team blu.
Questo repository contiene un Proof-of-Concept (PoC) per CVE-2026-6307 ("Longinus"), una vulnerabilità di confusione di tipo ad alta severità nel compilatore TurboFan di Google V8. Il bug deriva da un confronto di uguaglianza incompleto in FrameStateFunctionInfo durante l'inlining di chiamate da JavaScript a WebAssembly, omettendo in particolare il campo signature_ di JSToWasmFrameStateFunctionInfo.
Questa falla consente una fusione errata dei nodi FrameState con tipi di ritorno differenti (externref vs i64). Durante la deottimizzazione lazy, il deoptimizer interpreta erroneamente i registri di ritorno, fornendo potenti primitive di lettura/scrittura arbitraria:
addrof(target) - Perdita dell'indirizzo di un oggetto JavaScript come BigInt.fakeobj(addr) - Materializzazione di un oggetto JavaScript falso a un indirizzo arbitrario.Queste primitive superano sia il sandbox heap V8 che i confini del sandbox del renderer in una singola vulnerabilità quando combinate con opportune tecniche successive.
Impatto: Esecuzione remota di codice (RCE) all'interno del processo renderer in sandbox tramite JavaScript dannoso (ad esempio, una pagina web manipolata).
FrameState che incorporano JSToWasmFrameStateFunctionInfo.==) per FrameStateFunctionInfo non confronta la firma della funzione WebAssembly (signature_).FrameState con tipi di ritorno non corrispondenti.externref interpretato erroneamente come i64 → bit del puntatore trapelati come BigInt (addrof).i64 interpretato erroneamente come externref → bit interi materializzati come riferimento etichettato (fakeobj).Vedere l'analisi completa di Nebula Security e il rapporto di analisi allegato per diagrammi, frammenti IR di TurboFan e comportamento del deoptimizer.
d8 corrispondente da circa marzo–giugno 2026).--allow-natives-syntax --expose-wasmd8 in modalità debug con --turbo-dynamic-map-checks o simili per il debug.# Utilizzo della shell d8
./d8 --allow-natives-syntax --expose-wasm poc.js
Comportamento previsto (su build vulnerabile):
addrof riuscita di un oggetto fittizio.fakeobj riuscita (il controllo di identità passa).Nota: La RCE completa richiede ulteriore ingegneria (calcolo degli offset, interazione WASM/GC, escape dal sandbox). Questo PoC si concentra sulle primitive principali.
La regola .yar inclusa può essere utilizzata in strumenti di sicurezza per identificare il pattern del PoC in script o memoria.
Disclaimer: Questo repository è fornito esclusivamente per scopi didattici, difensivi e di ricerca. Non utilizzare su sistemi non autorizzati. Gli autori non si assumono alcuna responsabilità per un uso improprio.
Per domande, contributi o sviluppo di varianti, aprire un issue o una PR.
Ultimo aggiornamento: luglio 2026
| File | Descrizione |
|---|
poc.js | PoC principale che dimostra le primitive addrof e fakeobj + demo di lettura/scrittura di base. |
gen.py | Script di supporto per la generazione di varianti del PoC o strutture di payload. |
val.py | Utility di convalida e test per le primitive. |
cve-2026-6307_d8_execution.yml | Configurazione / flusso di lavoro per eseguire il PoC in una shell V8 d8. |
cve-2026-6307_longinus_poc.yar | Regola YARA per rilevare la firma del PoC o pattern correlati. |