CVE-2025-69209
ArduinoCore-avr has Stack-Based Buffer Overflow in WString Float/Double Constructors
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards.
Patches
-
The Fix is included starting from the
1.8.7release available from the following link ArduinoCore-avr v1.8.7 -
The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59
References
Credits
- Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.9
ArduinoCore-avr has Stack-Based Buffer Overflow in WString Float/Double Constructors
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards.
Patches
-
The Fix is included starting from the
1.8.7release available from the following link ArduinoCore-avr v1.8.7 -
The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59
References
Credits
- Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
- Record
CVE-2025-69209- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-120
- Updated
- 2026-11-02
EUVDEUVD-2025-206313
6.9
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards.
Patches
-
The Fix is included starting from the
1.8.7release available from the following link ArduinoCore-avr v1.8.7 -
The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59
References
Credits
- Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
- Record
EUVD-2025-206313- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
NVD
6.9
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards.
Patches
-
The Fix is included starting from the
1.8.7release available from the following link ArduinoCore-avr v1.8.7 -
The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59
References
Credits
- Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
- Record
CVE-2025-69209- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-120
- Updated
- 2026-11-02
OSV
6.9
ArduinoCore-avr has Stack-Based Buffer Overflow in WString Float/Double Constructors
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards.
Patches
-
The Fix is included starting from the
1.8.7release available from the following link ArduinoCore-avr v1.8.7 -
The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59
References
Credits
- Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
- Record
CVE-2025-69209- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-120
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2025-69209
6.9
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards. ### Patches - The Fix is included starting from the 1.8.7 release available from the following link ArduinoCore-avr v1.8.7 - The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59 ### References - ASEC-26-001 ArduinoCore-avr vXXXX Resolves Buffer Overflow Vulnerability ### Credits - Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
- Record
DEBIAN-CVE-2025-69209- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-69209
6.9
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.7 allows an attacker to trigger a stack-based buffer overflow when converting floating-point values to strings with high precision. By passing very large decimalPlaces values to the affected String constructors or concat methods, the dtostrf function writes beyond fixed-size stack buffers, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards. ### Patches - The Fix is included starting from the 1.8.7 release available from the following link ArduinoCore-avr v1.8.7 - The Fixing Commit is available at the following link 1a6a417f89c8901dad646efce74ae9d3ddebfd59 ### References - ASEC-26-001 ArduinoCore-avr vXXXX Resolves Buffer Overflow Vulnerability ### Credits - Maxime Rossi Bellom and Ramtine Tofighi Shirazi from SecMate (https://secmate.dev/)
- Record
UBUNTU-CVE-2025-69209- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
arduino-core-avrDebian:12 |
before 1.8.7+dfsg-1~deb12u1, plus listed versions 1.8.6+dfsg-11.8.6+dfsg-2 |
1.8.7+dfsg-1~deb12u1 |
arduino-core-avrDebian:13 |
before 1.8.7+dfsg-1~deb13u1, plus listed versions 1.8.6+dfsg-21.8.7+dfsg-1~deb12u1 |
1.8.7+dfsg-1~deb13u1 |
arduino-core-avrDebian:14 |
before 1.8.7+dfsg-1, plus listed versions 1.8.6+dfsg-21.8.7+dfsg-1~deb12u11.8.7+dfsg-1~deb13u1 |
1.8.7+dfsg-1 |
arduino-core-avrUbuntu:22.04:LTS |
All versions, plus listed versions 1.8.3+dfsg1-11.8.4+dfsg1-1 |
None known |
arduino-core-avrUbuntu:24.04:LTS |
All versions, plus listed versions 1.8.6+dfsg-1 |
None known |
arduino-core-avrUbuntu:25.10 |
All versions, plus listed versions 1.8.6+dfsg-1 |
None known |
arduino-core-avrUbuntu:26.10 |
All versions, plus listed versions 1.8.6+dfsg-1 |
None known |
arduino-core-avrUbuntu:26.04:LTS |
All versions, plus listed versions 1.8.6+dfsg-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-69209 is a medium vulnerability (CVSS 6.9) in Arduino Arduinocore-avr, published January 21, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.18%, the 7th percentile. Fixed in arduino-core-avr 1.8.7+dfsg-1~deb12u1.
References
github.com/arduino/ArduinoCore-avr/security/advisories/GHSA-pvx3-fm7w-6hjm
github.com/arduino/ArduinoCore-avr/pull/613
github.com/arduino/ArduinoCore-avr/commit/82a8ad2fb33911d8927c7af22e0472b94325d1a7
github.com/arduino/ArduinoCore-avr/releases/tag/1.8.7
support.arduino.cc/hc/en-us/articles/24985906702748-ASEC-26-001-ArduinoCore-AVR-v1-8-7-Resolves-Stack-Based-Buffer-Overflow-Vulnerability
github.com/CVEProject/cvelistV5/tree/main/cves/2025/69xxx/CVE-2025-69209.json