Out-of-memory condition in Nanopb is potentially exploitable
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA.
Summary
There is a potentially exploitable out of memory condition In Nanopb before 0.4.1, 0.3.9.5, and 0.2.9.4. When nanopb is compiled with PB_ENABLE_MALLOC, the message to be decoded contains a repeated string, bytes or message field and realloc() runs out of memory when expanding the array nanopb can end up calling `free()` on a pointer value that comes from uninitialized memory. Depending on platform this can result in a crash or further memory corruption, which may be exploitable in some cases. This problem is fixed in nanopb-0.4.1, nanopb-0.3.9.5, nanopb-0.2.9.4.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| nanopb | Nanopb | before 0.2.9.4; 0.3.0 to before 0.3.9.5; 0.4.0 to before 0.4.1 | 0.2.9.4, 0.3.9.5, 0.4.1 | Patch available | CNA |
- Nanopb Vendornanopb Affected before 0.2.9.4; 0.3.0 to before 0.3.9.5; 0.4.0 to before 0.4.1 Fixed in 0.2.9.4, 0.3.9.5, 0.4.1 Patch available CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* | before 0.2.9.4; 0.3.0 to before 0.3.9.5; 0.4.0 to before 0.4.1 | Vulnerable | nanopb |
- cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* Versions before 0.2.9.4; 0.3.0 to before 0.3.9.5; 0.4.0 to before 0.4.1 Vulnerable ·nanopb
Remediation
- Fix · CNA Nanopb (nanopb) Fixed in 0.2.9.4, 0.3.9.5, 0.4.1
Timeline
- 2026-10-02 Threatist record created from CVE-2020-5235
- 2026-10-03 Alias added: GHSA-6f6v-26gj-6crp
References
Patch 4
- https://github.com/nanopb/nanopb/security/advisories/GHSA-gcx3-7m76-287p
- https://github.com/nanopb/nanopb/commit/45582f1f97f49e2abfdba1463d1e1027682d9856
- https://github.com/nanopb/nanopb/commit/7b396821ddd06df8e39143f16e1dc0a4645b89a3
- https://github.com/nanopb/nanopb/commit/aa9d0d1ca78d6adec3adfeecf3a706c7f9df81f2
More Nanopb vulnerabilities
- TI-2014-08406 Nanopb before 0.3.1 allows size_t overflows in pb_dec_bytes and pb_dec_string. CVSS 3.1CRITICAL 9.8
- TI-2020-16064 Memory leak in nanopb CVSS 3.1HIGH 7.5
- TI-2021-04499 Invalid free() call in Nanopb CVSS 3.1HIGH 7.1
Sources
- CVE-2020-5235 · CVE Program
- CVE-2020-5235 · NVD
- FIRST EPSS
- GHSA-6f6v-26gj-6crp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences