Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-64705 — Корневой анализ и proof-of-concept для CVE-2026-64705, переполнения кучи в ядре macOS при обработке xattr в HFS. Включает weaponized HFS+ образ, патчер, парсер и подробное описание для образовательных и защитных исследований. | Kitploit
Инструменты/GitHubGitHub/eddinos2/cve-2026-64705
Фреймворки для эксплойтовАнализ уязвимостейЭксплуатацияАнализ Бинарных ФайловОбучение и Образование
GitHubeddinos2/cve-2026-64705

CVE-2026-64705

Корневой анализ и proof-of-concept для CVE-2026-64705, переполнения кучи в ядре macOS при обработке xattr в HFS. Включает weaponized HFS+ образ, патчер, парсер и подробное описание для образовательных и защитных исследований.

Репозиторий
1 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-64705 — Переполнение кучи в расширенных атрибутах HFS xattr (macOS)

Анализ первопричины и proof-of-concept для CVE-2026-64705, переполнения буфера в расширении ядра HFS, исправленного в macOS Sonoma 14.8.7 (HT127117):

HFS — Воздействие: приложение может вызвать непредвиденное завершение работы системы или запись в память ядра. Переполнение буфера устранено с помощью улучшенной проверки границ.

PoC представляет собой модифицированный образ диска HFS+. Его монтирование и чтение специально созданного расширенного атрибута приводит расширение HFS kext в неограниченный цикл bcopy по 64 байта в 512-байтовый буфер кучи ядра → переполнение кучи ядра с содержимым, контролируемым атакующим, на диске → паника на уязвимых сборках. Уровень «крах/паника» — не RCE.

  • Уязвимые: macOS ≤ 14.8.5 (hfs kext 650.140.2) и другие ветки до исправления
  • Исправлено: macOS 14.8.7 (hfs 650.140.2.701.4) — добавлены проверки переноса adds/b.hs, завершение при нулевом счётчике и отклонение total==0 / total>expected
  • Строки патча (контракт валидатора): hfs_setxattr: %s has a malformed overflow extent, то же для getxattr.

Содержимое

файлописание
poc-cve-2026-64705.dmgМодифицированный образ HFS+ на 32 МБ (файл-триггер + специально созданные записи xattr)
weaponize.pyПатчер, создавший образ — заново вычисляет каждое смещение из самого образа; работает с любым совместимым базовым образом
parse_attr.pyПарсер B-дерева атрибутов, используемый для поиска/дампа записей xattr
BUILD.mdПолная инструкция по сборке из чистого базового образа + точные hex-дельты
WRITEUP.mdАнализ первопричины: дифф kext (14.8.5 против 14.8.7), уязвимый цикл, механизм

Триггер

На системе до исправления (или в жертвенной ВМ — это вызывает панику ядра):

root@kitploit:~
hdiutil attach -nobrowse poc-cve-2026-64705.dmg
xattr -l /Volumes/CVE64705/trigger.txt     # переполнение кучи ядра -> паника

На исправленной системе тот же образ монтируется нормально, а триггер отклоняется новым валидатором — вы можете наблюдать дифференциальное доказательство в журнале ядра:

root@kitploit:~
hfs_getxattr: bigattr has a malformed overflow extent

что также подтверждает: специально созданная запись направляет выполнение точно в исправленный (и ранее уязвимый) обход.

Пересборка образа

root@kitploit:~
hdiutil create -fs HFS+ -size 32m -volname CVE64705 base.dmg
hdiutil attach -nobrowse base.dmg
echo trigger > /Volumes/CVE64705/trigger.txt
xattr -w bigattr "$(head -c 8192 /dev/zero | base64)" /Volumes/CVE64705/trigger.txt
hdiutil detach /Volumes/CVE64705
python3 weaponize.py          # -> poc-cve-2026-64705.dmg

Суть ошибки в одном абзаце

Для большого xattr, хранящегося как kHFSPlusAttrForkData, hfs_getxattr_internal (и зеркальная hfs_setxattr_internal) обходит 8 дескрипторов экстентов записи переполнения. count_extent_blocks() пропускает любой дескриптор, чей blockCount превышает ожидаемый итог, и возвращает 32-битную сумму без проверки переноса или нуля. Если каждый blockCount превышает итог, счётчик возвращается равным 0, blkcnt никогда не увеличивается, и цикл while (blkcnt < totalblocks) продолжает копировать по 64 байта, контролируемых атакующим, за итерацию за пределы буфера кучи размером totalblocks*8 байт. Вариант с целочисленным переносом (blockCounts, суммирующиеся за 2^32) — та же отсутствующая проверка; патч 14.8.7 устраняет оба варианта.

В образовательных и оборонительных исследовательских целях. Ошибка исправлена в текущих версиях macOS; тестируйте только на машинах, которыми вы владеете.

Скачать инструмент