
CVE-2026-91737の概念実証。ChromeのPDFレンダラーにおけるPDFiumのuse-after-freeを悪用し、サンドボックス内でのASLRバイパスとARM64ペイロードの実行を可能にする。
再入可能な PDF JavaScript アクションが、Chromium の PopulateAnnotationLinks() が生のページハンドルを保持している間に CPDF_Page をアンロードします。この PoC はその割り当てを再利用し、ASLR を回復し、サンドボックス化された PDF レンダラー内で攻撃者が用意した 40 バイトの ARM64 ペイロードを実行します。ペイロードはセンチネルを書き込み、PDF スクリプティングに戻ります。
Chromium issue 558036280 · 公開エクスプロイトの更新と添付ファイル
未改変の Chrome Beta 154.0.8037.0、macOS 26.2 arm64 でテスト済みです。Chrome Framework の SHA-256 は 280c15c95811fcf799c91e7c307fc941cc61be1f156247d86d9856ead0e06062 でした。この問題は修正済みであり、本 PoC はテストしたビルド向けのオフセットを使用しています。PDF アクセシビリティが必要です。以下のフラグによりそのエントリが決定的になり、レンダラーサンドボックスは有効なままになります。
python3 oracle_server.py --port 8000 --root serve --events ./rce-events.jsonl
別のターミナルで:
"/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
成功すると SELFCONTAINED_MAPJIT_NATIVE_PAYLOAD_SENTINEL_COMPLETE で終了します。検証済みの実行には約 21 分かかりました。ASLR プローブの失敗は意図的に PDF レンダラーインスタンスをクラッシュさせます。
スコープ: サンドボックス化された PDF レンダラー内でのネイティブコード実行です。ブラウザプロセスの侵害やサンドボックスエスケープは主張していません。