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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-26399-Disclosure — Раскрытие уязвимости типа use-after-return на основе стека в Arduino_Core_STM32 с описанием технической первопричины, затронутых версий и исправления, а также анализом влияния на безопасность. | Kitploit
Инструменты/GitHubGitHub/acen28/cve-2026-26399-disclosure
Безопасность встроенных системАнализ уязвимостейФаззингБезопасность оборудования и IoT
GitHubacen28/cve-2026-26399-disclosure

CVE-2026-26399-Disclosure

Раскрытие уязвимости типа use-after-return на основе стека в Arduino_Core_STM32 с описанием технической первопричины, затронутых версий и исправления, а также анализом влияния на безопасность.

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
164 месяцев назадЕщё не проверено

CVE-2026-26399: Переполнение стека типа use-after-return в Arduino_Core_STM32 (устаревшие версии)

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

В устаревших версиях Arduino_Core_STM32 до версии 1.7.0 существует уязвимость типа use-after-return на основе стека.

Проблема находится в реализации pwm_start(), где объект TIM_HandleTypeDef выделяется в стеке, а его адрес передается в логику инициализации HAL. Этот указатель впоследствии может сохраняться в глобальном реестре обработчиков таймеров и асинхронно разыменовываться подпрограммами обработки прерываний после того, как исходный стековый кадр уже был возвращен.

Данной уязвимости присвоен идентификатор CVE-2026-26399 организацией MITRE.

Затронутый продукт

  • Продукт: Arduino_Core_STM32
  • Поставщик / проект: stm32duino / экосистема STMicroelectronics
  • Затронутые версии: с v0.1.0 по v1.6.1
  • Исправленная версия: v1.7.0

Тип уязвимости

  • CWE-562: Использование после возврата
  • Висячий указатель на основе стека / use-after-return

Технические подробности

В устаревшей реализации pwm_start() структура TIM_HandleTypeDef создается как локальная переменная стека:

root@kitploit:~
void pwm_start(...) {
    TIM_HandleTypeDef timHandle = {};
    HAL_TIM_PWM_Init(&timHandle);
    ...
}

Адрес этого локального объекта передается в вспомогательную логику HAL и может сохраняться в глобальном состоянии управления таймерами, например, в глобальном реестре обработчиков таймеров.

После возврата из pwm_start() объект в стеке становится недействительным. Однако последующие асинхронные обработчики прерываний таймера могут по-прежнему разыменовывать устаревший указатель, что приводит к повреждению памяти и неопределенному поведению.

Воздействие

Возможное влияние на безопасность включает:

  • Отказ в обслуживании (например, сбой или HardFault)
  • Потенциальное выполнение кода при благоприятных условиях компоновки памяти и управления

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

Затронутые компоненты

  • cores/arduino/stm32/analog.c
  • pwm_start()
  • TIM_HandleTypeDef
  • логика отслеживания глобальных обработчиков таймеров (например, timer_handles)

Исправление

Проблема, по-видимому, была косвенно устранена в версии 1.7.0 в ходе рефакторинга, который заменил предыдущий путь обработки на основе стека другой схемой управления таймерами. Похоже, что для устаревшей уязвимости не было выпущено отдельного бюллетеня по безопасности.

Обнаружение

Эта проблема была выявлена в ходе исследований безопасности прошивок, включающих фаззинг и анализ первопричин устаревших прошивок на базе STM32, собранных на Arduino_Core_STM32.

Контакт с поставщиком

С PSIRT поставщика была установлена связь. В ответе указывалось, что текущие версии не затронуты, поскольку проблема уже была исправлена в версии 1.7.0, однако на тот момент поставщик, по-видимому, не запрашивал отдельный идентификатор CVE.

Авторство

Обнаружено Jin Chang.

Ссылки

  • Репозиторий проекта: https://github.com/stm32duino/Arduino_Core_STM32
  • Идентификатор CVE: CVE-2026-26399
Скачать инструмент