
CVE-2026-6307 PoC: Longinus - 2 Boundaries in One Bug https://nebusec.ai/research/v8-cve-2026-6307-writeup/)
Mais conhecido como 'Longinus': 2 Limites em Um Bug
Repositório: https://github.com/J4ck3LSyN-Gen2/CVE-2026-6307-Longinus
Relatório Detalhado: OS-IS-CVE-2026-6307-07-2026.md
Artigo Técnico: Nebula Security - Longinus: 2 Limites em Um Bug
[!WARNING] Este código é fornecido COMO ESTÁ apenas para fins educacionais e de pesquisa. Não use este PoC em sistemas de produção, ambientes compartilhados ou qualquer alvo não autorizado.
- Este exploit demonstra uma vulnerabilidade crítica de execução remota de código (RCE) (CVE-2026-6307) que pode comprometer totalmente o sandbox do renderizador do Chrome.
- Executar ou hospedar este código pode acionar detecções de antivírus, alertas de monitoramento de segurança ou consequências legais se mal utilizado.
- Os autores e mantenedores do repositório não assumem nenhuma responsabilidade por danos, uso indevido ou atividades ilegais decorrentes deste código.
- Use exclusivamente em ambientes de laboratório isolados com autorização adequada. Destinado apenas a pesquisa defensiva, análise de vulnerabilidades e testes de blue-team.
Este repositório contém uma Prova de Conceito (PoC) para CVE-2026-6307 ("Longinus"), uma vulnerabilidade de confusão de tipos de alta gravidade no compilador TurboFan do Google V8. O bug surge de uma comparação de igualdade incompleta em FrameStateFunctionInfo durante o inlining de chamadas JS-to-WebAssembly, omitindo especificamente o campo signature_ de JSToWasmFrameStateFunctionInfo.
Essa falha permite a mesclagem incorreta de nós FrameState com tipos de retorno diferentes (externref vs i64). Durante a desotimização preguiçosa, o desotimizador interpreta erroneamente os registradores de retorno, gerando poderosas primitivas de leitura/escrita arbitrárias:
addrof(target) - Vazar o endereço de um objeto JavaScript como um BigInt.fakeobj(addr) - Materializar um objeto JavaScript falso em um endereço arbitrário.Essas primitivas rompem tanto o sandbox de heap do V8 quanto os limites do sandbox do renderizador em uma única vulnerabilidade quando combinadas com técnicas de acompanhamento adequadas.
Impacto: Execução Remota de Código (RCE) dentro do processo do renderizador em sandbox via JavaScript malicioso (ex.: uma página web manipulada).
FrameState que incorporam JSToWasmFrameStateFunctionInfo.==) para FrameStateFunctionInfo não compara a assinatura da função WebAssembly (signature_).FrameStates com tipos de retorno incompatíveis.externref interpretado erroneamente como i64 → bits de ponteiro vazados como BigInt (addrof).i64 interpretado erroneamente como externref → bits inteiros materializados como referência marcada (fakeobj).Consulte o artigo completo da Nebula Security e o relatório de análise anexado para diagramas, trechos de IR do TurboFan e comportamento do desotimizador.
d8 correspondente de aproximadamente março a junho de 2026).--allow-natives-syntax --expose-wasmd8 de depuração com --turbo-dynamic-map-checks ou similar para depuração.# Using d8 shell
./d8 --allow-natives-syntax --expose-wasm poc.js
Comportamento Esperado (em build vulnerável):
addrof de um objeto fictício.fakeobj (verificação de identidade passa).Nota: RCE completo requer engenharia adicional (cálculo de deslocamento, interação WASM/GC, escape do sandbox). Este PoC foca nas primitivas principais.
A regra .yar incluída pode ser usada em ferramentas de segurança para identificar o padrão do PoC em scripts ou memória.
Aviso Legal: Este repositório é fornecido apenas para fins educacionais, defensivos e de pesquisa. Não use em sistemas não autorizados. Os autores não assumem nenhuma responsabilidade por uso indevido.
Para perguntas, contribuições ou desenvolvimento de variantes, abra um issue ou PR.
Última atualização: Julho de 2026
| Arquivo | Descrição |
|---|
poc.js | PoC principal demonstrando primitivas addrof e fakeobj + demonstração básica de leitura/escrita. |
gen.py | Script auxiliar para gerar variantes de PoC ou scaffolding de payload. |
val.py | Utilitários de validação e teste para primitivas. |
cve-2026-6307_d8_execution.yml | Configuração / fluxo de trabalho para executar o PoC em um shell V8 d8. |
cve-2026-6307_longinus_poc.yar | Regra YARA para detectar a assinatura do PoC ou padrões relacionados. |