Impact
The vulnerability arises from a stack-use-after-return in the Arduino_Core_STM32 library, where pwm_start() allocates a TIM_HandleTypeDef on the stack and passes its address to HAL routines. After pwm_start() returns, the pointer remains registered globally and can be dereferenced by interrupt service routines, leading to memory corruption. This flaw can allow an attacker to overwrite memory locations and potentially execute arbitrary code, undermining the confidentiality and integrity of the system.
Affected Systems
Systems running the Arduino_Core_STM32 library versions earlier than 1.7.0 are affected. This includes any STM32-based projects that use the PWM timing functions provided by the library.
Risk and Exploitability
The EPSS score is not available and the vulnerability is not listed in CISA KEV, suggesting a low to moderate known exploitation probability. The lack of a publicly disclosed CVSS score prevents a precise severity assessment, but the nature of the flaw—dereferencing a dangling pointer in interrupt context—makes it likely to be exploitable with sufficient access to the device. The attack vector is inferred to be exploitation of the MCU’s interrupt handling mechanism, possibly through user-controlled input that triggers PWM usage.
OpenCVE Enrichment