
Preuve de concept pour CVE-2026-91737, un use-after-free dans PDFium, le moteur de rendu PDF de Chrome, permettant de contourner l'ASLR et d'exécuter une charge utile ARM64 à l'intérieur du bac à sable.
Une action JavaScript PDF réentrante décharge CPDF_Page pendant que PopulateAnnotationLinks() de Chromium détient son handle de page brut. Ce PoC récupère l'allocation, contourne l'ASLR et exécute une charge utile ARM64 de 40 octets fournie par l'attaquant dans le moteur de rendu PDF sandboxé. La charge utile écrit une sentinelle et retourne au scripting PDF.
Problème Chromium 558036280 · Mise à jour publique de l'exploit et pièces jointes
Testé sur Chrome Beta 154.0.8037.0 non modifié, macOS 26.2 arm64. Le SHA-256 de Chrome Framework était 280c15c95811fcf799c91e7c307fc941cc61be1f156247d86d9856ead0e06062. Le problème est corrigé ; ce PoC utilise les offsets de la version testée. Il nécessite l'accessibilité PDF. L'option ci-dessous rend cette entrée déterministe et laisse le sandbox du moteur de rendu activé.
python3 oracle_server.py --port 8000 --root serve --events ./rce-events.jsonl
Dans un autre 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
Le succès se termine par SELFCONTAINED_MAPJIT_NATIVE_PAYLOAD_SENTINEL_COMPLETE. L'exécution vérifiée a pris environ 21 minutes. Les sondes ASLR échouées provoquent intentionnellement le plantage des instances du moteur de rendu PDF.
Périmètre : exécution de code natif dans le moteur de rendu PDF sandboxé. Aucune compromission du processus navigateur ni évasion de sandbox n'est revendiquée.