Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-26399-Disclosure — 披露 Arduino_Core_STM32 中基于栈的返回后使用(use-after-return)漏洞,详述技术根因、受影响版本及修复方案,并附安全影响分析。 | Kitploit
工具/GitHubGitHub/acen28/cve-2026-26399-disclosure
嵌入式系统安全漏洞分析模糊测试硬件与物联网安全
GitHubacen28/cve-2026-26399-disclosure

CVE-2026-26399-Disclosure

披露 Arduino_Core_STM32 中基于栈的返回后使用(use-after-return)漏洞,详述技术根因、受影响版本及修复方案,并附安全影响分析。

查看仓库
164个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-26399:Arduino_Core_STM32(旧版本)中的基于栈的 Use-After-Return 漏洞

摘要

在 Arduino_Core_STM32 的 1.7.0 之前的旧版本中存在一个基于栈的 use-after-return 漏洞。

该问题位于 pwm_start() 实现中,其中 TIM_HandleTypeDef 对象在栈上分配,其地址被传入 HAL 初始化逻辑。该指针随后可能被保留在全局定时器句柄注册表中,并在原始栈帧返回后由中断服务例程异步解引用。

该漏洞已被 MITRE 分配编号 CVE-2026-26399。

受影响产品

  • 产品:Arduino_Core_STM32
  • 厂商 / 项目:stm32duino / STMicroelectronics 生态系统
  • 受影响版本:v0.1.0 至 v1.6.1
  • 修复版本:v1.7.0

漏洞类型

  • CWE-562:Use After Return(返回后使用)
  • 基于栈的悬垂指针 / 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 中通过重构间接解决,重构用不同的定时器管理设计取代了之前基于栈的处理路径。对于该旧漏洞,似乎没有发布专门的安全公告。

发现过程

该问题是在固件安全研究过程中发现的,涉及对基于 Arduino_Core_STM32 构建的旧版 STM32 固件进行模糊测试和根因分析。

厂商联系

已联系厂商 PSIRT。回复表明当前版本不受影响,因为该问题已在版本 1.7.0 中修复,但厂商当时似乎未请求分配专门的 CVE 编号。

致谢

由 Jin Chang 发现。

参考

  • 项目仓库:https://github.com/stm32duino/Arduino_Core_STM32
  • CVE 编号:CVE-2026-26399
下载工具