{"id":"CVE-2026-26399","aliases":["EUVD-2026-23912","GHSA-vxch-4r45-jhw9","UBUNTU-CVE-2026-26399"],"status":"published","title":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0....","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-12","score":0.00179,"percentile":0.07528,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-562","CWE-825"],"published":"2026-04-20T00:00:00Z","modified":"2026-10-28T02:30:32Z","exploits":[{"source":"pocgithub","id":"Acen28/CVE-2026-26399-Disclosure","title":"Acen28/CVE-2026-26399-Disclosure","date":"2026-04-19","url":"https://github.com/Acen28/CVE-2026-26399-Disclosure"}],"affected":[{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.0.5+dfsg2-4"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.0.5+dfsg2-4.1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.0.5+dfsg2-4.1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.8.15+dfsg1-1","2:1.8.16+dfsg1-1","2:1.8.18+dfsg1-1","2:1.8.19+dfsg1-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.8.19+dfsg1-2"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.8.19+dfsg1-3","2:1.8.19+dfsg1-4"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.8.19+dfsg1-5"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"arduino","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:1.8.19+dfsg1-4","2:1.8.19+dfsg1-5"]}],"references":[{"url":"https://github.com/stm32duino/Arduino_Core_STM32/releases/tag/1.6.1","tags":["web"]},{"url":"https://github.com/Acen28/CVE-2026-26399-Disclosure","tags":["package"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-26399","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-vxch-4r45-jhw9"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/26xxx/CVE-2026-26399.json","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-26399","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-26399","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-26399","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","status":"published","published":"2026-04-20T00:00:00Z","modified":"2026-04-22T19:53:16.622Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"adp"}],"cwes":["CWE-562"],"updated_at":"2026-11-02T13:38:32.13011Z"}],"euvd":[{"id":"EUVD-2026-23912","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","status":"published","published":"2026-04-20T00:00:00Z","modified":"2026-04-22T19:53:16Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T19:24:19.81608Z"}],"ghsa":[{"id":"GHSA-vxch-4r45-jhw9","title":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0....","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","status":"published","published":"2026-04-20T18:31:49Z","modified":"2026-04-22T21:32:58Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-562","CWE-825"],"updated_at":"2026-11-02T15:07:35.737909Z"}],"nvd":[{"id":"CVE-2026-26399","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","status":"published","published":"2026-04-20T18:16:25.04Z","modified":"2026-06-17T10:26:10.407Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"secondary"}],"cwes":["CWE-562"],"updated_at":"2026-11-02T14:12:15.120927Z"}],"osv":[{"id":"CVE-2026-26399","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","status":"published","published":"2026-04-20T00:00:00Z","modified":"2026-10-28T02:30:32.797919394Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T15:44:59.80315Z"},{"id":"UBUNTU-CVE-2026-26399","description":"A stack-use-after-return issue exists in the Arduino_Core_STM32 library prior to version 1.7.0. The pwm_start() function allocates a TIM_HandleTypeDef structure on the stack and passes its address to HAL initialization routines, where it is stored in a global timer handle registry. After the function returns, interrupt service routines may dereference this dangling pointer, resulting in memory corruption.","status":"published","published":"2026-04-20T18:16:00Z","modified":"2026-10-17T12:55:31.167379404Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T16:56:08.726452Z"}]}}
