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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-56111 — Эксплойт доказательства концепции для CVE-2026-56111, внеграничная запись в обработчике G-кода M421 прошивки Marlin, демонстрирующий ограниченное повреждение памяти с помощью специально сформированных G-код команд. | Kitploit
Инструменты/GitHubGitHub/christbowel/cve-2026-56111
Безопасность встроенных системАнализ уязвимостейЭксплуатацияФаззингАппаратная БезопасностьЭксплуатация Бинарных Файлов
GitHubchristbowel/cve-2026-56111

CVE-2026-56111

Эксплойт доказательства концепции для CVE-2026-56111, внеграничная запись в обработчике G-кода M421 прошивки Marlin, демонстрирующий ограниченное повреждение памяти с помощью специально сформированных G-код команд.

Репозиторий
11 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-56111 - Выход за границы записи в Marlin M421

Доказательство концепции для CVE-2026-56111, выхода за границы записи в обработчике G-кода M421 прошивки Marlin Firmware, собранной с MESH_BED_LEVELING.

  • Консультация: https://www.vulncheck.com/advisories/marlin-firmware-out-of-bounds-write-via-m421-g-code-handler
  • Затронуты: Marlin <= 2.1.2.7, исправлено в коммите 1f255d1
  • Серьёзность: Высокая (CVSS 8.3)

Ошибка

Обработчик MBL M421 проверяет только, что индексы I/J не отрицательны. Он никогда не проверяет верхнюю границу. Затем set_z() записывает z_values[ix][iy] = z без проверки границ. Индекс за пределами сетки записывает контролируемое 32-битное число с плавающей точкой за пределы массива z_values, в соседнее состояние прошивки.

Запись ограничена, а не произвольна. Целью является z_values + (ix*GRID_Y + iy)*4 байт, при этом индексы ограничены int8_t (макс. 127), поэтому достижимое окно составляет около 2 КБ за z_values. Вы управляете значением (число с плавающей точкой Z) и смещением (индекс). Вы не управляете абсолютным адресом.

Этот инструмент только отправляет строку G-кода. Выход за границы записи происходит внутри прошивки. Наблюдаемые эффекты: отказ в обслуживании, сбой прошивки или повреждение движения. Точная запись в память показана в консультации, а не этим инструментом.

Сборка

root@kitploit:~
gcc -O2 -o exp exploit.c

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

Выберите один канал:

  • --serial <устройство> для USB, например, /dev/ttyUSB0 или /dev/ttyACM0 (при необходимости добавьте --baud N; многие платы используют 250000)
  • --tcp <хост:порт> для принтеров, предоставляющих telnet/сетевой gcode, например, 192.168.1.50:23

Режим записи

Отправьте M421 с выбранными индексом и значением:

root@kitploit:~
./exp --serial /dev/ttyUSB0 write -i 3 -j 0 -z 99.0
./exp --tcp 192.168.1.50:23  write -i 5 -j 0 -z 99.0

На сетке 3×3 по умолчанию (допустимый индекс 0..2):

  • -i 3 -j 0 записывает по смещению 36 байт, что соответствует z_offset (смещение Z стола)
  • -i 5 -j 0 записывает по смещению 60 байт, что соответствует объекту парсера

Режим отказа

Отправьте индекс за пределами диапазона со значением Z, равным NaN. Значение NaN распространяется в математику движений и надёжно приводит к сбою или зависанию прошивки:

root@kitploit:~
./exp --serial /dev/ttyUSB0 dos
./exp --tcp 192.168.1.50:23  dos

Исправление

Обновитесь до сборки Marlin, включающей коммит 1f255d1, который ограничивает индексы так же, как это уже делают обработчики ABL и UBL.

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

Только для исследований и авторизованного тестирования. Используйте только на устройствах, которые вам принадлежат или на тестирование которых у вас есть явное разрешение. Отправка этих команд может привести к сбою принтера или нарушить печать.

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