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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-55781-poc — Неограниченное выделение памяти в обработчике UFS NanaZip через управляемое злоумышленником поле `fs_bsize`. | Kitploit
Инструменты/GitHubGitHub/g17hubh4ck/cve-2026-55781-poc
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияСтатьи и Исследования
GitHubg17hubh4ck/cve-2026-55781-poc

CVE-2026-55781-poc

Неограниченное выделение памяти в обработчике UFS NanaZip через управляемое злоумышленником поле `fs_bsize`.

Репозиторий
3 ч 55 мин назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-55781 — DoS парсера UFS в NanaZip

Неограниченное выделение памяти в обработчике UFS в NanaZip через контролируемое атакующим поле fs_bsize.

Сводка

ПолеЗначение
CVECVE-2026-55781
РекомендацияGHSA-m34h-jf84-m74h
ВендорM2Team / NanaZip
ЗатронутоNanaZip <= 6.5 Preview (6.5.1742.0)
Исправлено6.5.1749.0
КлассОтказ в обслуживании (CWE-789: Выделение памяти с чрезмерным значением размера)
ПлатформаWindows
Авторg17hubH4ck
Раскрыто2026-07-17

Первопричина

NanaZip.Codecs.Archive.Ufs.cpp читает суперблок UFS и проверяет fs_bsize только на нижнюю границу (MINBSIZE). Верхняя граница не применяется до того, как значение используется для определения размера выделений.

Когда корневой inode (#2) объявляет di_size, достаточно большой для требования косвенных блоков, парсер выделяет один буфер на каждый уровень косвенности, используя fs_bsize. Установка fs_bsize = 0x40000000 (1 GiB) и di_size = 0x10000000000 (1 TiB) вызывает три выделения по 1 GiB (Ufs.cpp:435-437) — примерно 3 GiB непрерывной памяти — до того, как выполнится какая-либо проверка границ.

Результат: исчерпание памяти и завершение процесса. Выполнение кода отсутствует.

Структура сформированного образа

ОбластьСмещениеПримечания
Корневой inode #2512ufs2_dinode, 256 байт, di_mode = IFDIR, di_size = 1 TiB
Суперблок UFS265536 (SBLOCK_UFS2)struct fs, little-endian, fs_bsize = 0x40000000
Общий размер66912 байтSBLOCK_UFS2 + sizeof(struct fs)

Ключевые поля суперблока (смещения от offsetof(struct fs, ...) в FreeBSD fs.h):

СмещениеПолеЗначение
+16fs_iblkno0
+44fs_ncg1
+48fs_bsize0x40000000 ← вредоносное
+52fs_fsize1
+56fs_frag1
+104fs_sbsize1376
+1000fs_sblockloc65536
+1372fs_magic0x19540119 (FS_UFS2_MAGIC)

Адрес корневого inode: GetInodeOffset(2) = fs_iblkno * fs_fsize + 2 * 256 = 512.

Использование

root@kitploit:~
python3 poc.py poc.img

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

Проверка

Сгенерированный образ можно исследовать без NanaZip:

root@kitploit:~
xxd -s 65536 -l 64 poc.img     # заголовок суперблока
xxd -s 512   -l 32 poc.img     # заголовок корневого inode

Чтобы наблюдать сбой, откройте poc.img с помощью уязвимой сборки на Windows. 6.5.1749.0 и более поздние версии обрабатывают этот ввод корректно.

Примечание: Этот PoC был создан путём статического анализа парсера NanaZip.Codecs. Он достигает именно той уязвимой строки, которая задокументирована в рекомендации, но не был выполнен на работающей сборке NanaZip.

Меры противодействия

· Обновитесь до NanaZip >= 6.5.1749.0. · Если обновление невозможно, избегайте открытия образов UFS из недоверенных источников.

Ссылки

· NanaZip: https://github.com/M2Team/NanaZip · Рекомендация: GHSA-m34h-jf84-m74h · CWE-789: https://cwe.mitre.org/data/definitions/789.html

Отказ от ответственности

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

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