Read the docs
TI-2020-04291 Aliases CVE-2020-5235GHSA-6f6v-26gj-6crp

Out-of-memory condition in Nanopb is potentially exploitable

Priority MEDIUM 46CWE-125Published · Updated

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

EPSS 0.01726 77th percentileScored 2026-11-07
Fix Fixed Nanopb (nanopb): 0.2.9.4, 0.3.9.5, 0.4.1

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
nanopbNanopbbefore 0.2.9.4; 0.3.0 to before 0.3.9.5; 0.4.0 to before 0.4.10.2.9.4, 0.3.9.5, 0.4.1Patch availableCNA
  • 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

CPEVersionsRoleVendor
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.1Vulnerablenanopb
  • 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

  1. 2026-10-02 Threatist record created from CVE-2020-5235
  2. 2026-10-03 Alias added: GHSA-6f6v-26gj-6crp

References

  • 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