
Prova de conceito para CVE-2026-91737, um use-after-free no PDFium do renderizador de PDF do Chrome que permite contornar o ASLR e executar payloads ARM64 dentro do sandbox.
Uma ação JavaScript de PDF reentrante descarrega CPDF_Page enquanto o PopulateAnnotationLinks() do Chromium mantém seu handle de página bruto. Este PoC recupera a alocação, contorna o ASLR e executa um payload ARM64 de 40 bytes fornecido pelo atacante no renderizador de PDF em sandbox. O payload grava um sentinel e retorna ao scripting de PDF.
Chromium issue 558036280 · Public exploit update and attachments
Testado no Chrome Beta 154.0.8037.0 sem modificações, macOS 26.2 arm64. O SHA-256 do Chrome Framework era 280c15c95811fcf799c91e7c307fc941cc61be1f156247d86d9856ead0e06062. O problema foi corrigido; este PoC usa offsets para a build testada. Ele requer acessibilidade de PDF. A flag abaixo torna essa entrada determinística e mantém o sandbox do renderizador habilitado.
python3 oracle_server.py --port 8000 --root serve --events ./rce-events.jsonl
Em outro terminal:
"/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta" \
--user-data-dir="$(mktemp -d /tmp/plc01-rce.XXXXXX)" \
--no-first-run --no-default-browser-check \
--disable-background-networking --disable-component-update --disable-sync \
--force-renderer-accessibility --enable-logging=stderr --v=1 \
http://127.0.0.1:8000/quick/poc.html
O sucesso termina com SELFCONTAINED_MAPJIT_NATIVE_PAYLOAD_SENTINEL_COMPLETE. A execução verificada levou cerca de 21 minutos. Sondagens de ASLR malsucedidas derrubam intencionalmente instâncias do renderizador de PDF.
Escopo: execução de código nativo no renderizador de PDF em sandbox. Não se alega comprometimento do processo do navegador nem escape do sandbox.