
Prueba de concepto para CVE-2026-91737, un use-after-free en PDFium dentro del renderizador de PDF de Chrome que permite eludir ASLR y la ejecución de payloads en ARM64 dentro del sandbox.
Una acción de JavaScript de PDF reentrante descarga CPDF_Page mientras PopulateAnnotationLinks() de Chromium mantiene su handle de página sin procesar. Esta PoC recupera la asignación, elude ASLR y ejecuta un payload ARM64 de 40 bytes proporcionado por el atacante en el renderizador de PDF en sandbox. El payload escribe un centinela y regresa al scripting de PDF.
Chromium issue 558036280 · Public exploit update and attachments
Probado en Chrome Beta 154.0.8037.0 sin modificar, macOS 26.2 arm64. El SHA-256 de Chrome Framework era 280c15c95811fcf799c91e7c307fc941cc61be1f156247d86d9856ead0e06062. El problema está corregido; esta PoC usa offsets para la compilación probada. Requiere accesibilidad de PDF. El flag a continuación hace determinista esa entrada y deja habilitado el sandbox del renderizador.
python3 oracle_server.py --port 8000 --root serve --events ./rce-events.jsonl
En otra 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
El éxito termina con SELFCONTAINED_MAPJIT_NATIVE_PAYLOAD_SENTINEL_COMPLETE. La ejecución verificada tardó unos 21 minutos. Las sondas de ASLR fallidas provocan intencionalmente el fallo de instancias del renderizador de PDF.
Alcance: ejecución de código nativo en el renderizador de PDF en sandbox. No se afirma compromiso del proceso del navegador ni escape del sandbox.