Skip to main content
No exploitation reportedFix available

CVE-2020-26243

No exploitation reported by the sources we read.

  • Published2020-11-25
  • Fixed in0.4.4 · 0.3.9.7
  • WeaknessCWE-119 · CWE-20

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

Nanopb is a small code-size Protocol Buffers implementation. In Nanopb before versions 0.4.4 and 0.3.9.7, decoding specifically formed message can leak memory if dynamic allocation is enabled and an oneof field contains a static submessage that contains a dynamic field, and the message being decoded contains the submessage multiple times. This is rare in normal messages, but it is a concern when untrusted data is parsed. This is fixed in versions 0.3.9.7 and 0.4.4. The following workarounds are available: 1) Set the option `no_unions` for the oneof field. This will generate fields as separate instead of C union, and avoids triggering the problematic code. 2) Set the type of the submessage field inside oneof to `FT_POINTER`. This way the whole submessage will be dynamically allocated and the problematic code is not executed. 3) Use an arena allocator for nanopb, to make sure all memory can be released afterwards.

Timeline

dates in UTC
  1. 2020-11-2517:15CVE publishedNVD

Versions per branch

NVD · OSV
Nanopb project nanopb
BranchAffectedFixed in
0.4≥ 0.4.0, < 0.4.40.4.4
0.3< 0.3.9.70.3.9.7
0.3≥ 0.3.2, < 0.3.9.70.3.9.7

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • nanopbUbuntu:Pro:20.04:LTSall versions · fixed in 0.4.1-1ubuntu0.1~esm1
  • nanopbopenSUSE:Tumbleweedall versions · fixed in 0.4.5-1.3
  • nanopbDebian:14all versions · fixed in 0.4.4-1
  • nanopbDebian:13all versions · fixed in 0.4.4-1
  • nanopbDebian:12all versions · fixed in 0.4.4-1

Vendor advisories

  • CVE-2020-26243 Red Hat Product Security2 known affected

    nanopb: oneof fields with PB_ENABLE_MALLOC can leak memory

    servicemesh-proxy as a component of OpenShift Service Mesh 1 · servicemesh-proxy.src as a component of OpenShift Service Mesh 1

Full record on NVD

Fix

  1. Update Nanopb project nanopb to 0.4.4 · 0.3.9.7
  2. No fix planned, says the vendor Red Hat Product Security CVE-2020-26243 · 2 productsWill not fix

Advisories and patches

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof of concept
Metasploit modules
none listed
Metasploit Framework

Sources

  • CNACVSS 3.17.5known since 2026-10-23
  • NVDCVSS 3.17.5read 2026-10-23
  • NVDCVSS 2.04.3read 2026-10-23
  • CNAweakness (CWE)CWE-119, CWE-20known since 2026-10-23
  • FIRST EPSSEPSS score2.7 %2026-11-09
  • OSVaffected packages—
  • GitHub AdvisoriesadvisoryMODERATE2020-11-25

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Published
2020-11-25
Last Modified
2026-06-17
NVD status
Modified
GitHub Advisory
GHSA-85rr-4rh9-hhwh

Frequently asked questions

What is CVE-2020-26243?

Nanopb is a small code-size Protocol Buffers implementation. In Nanopb before versions 0.4.4 and 0.3.9.7, decoding specifically formed message can leak memory if dynamic allocation is enabled and an oneof field contains a static submessage that contains a dynamic field, and the message being decoded contains the submessage multiple times. This is rare in normal messages, but it is a concern when untrusted data is parsed. This is fixed in versions 0.3.9.7 and 0.4.4. The following workarounds are available: 1) Set the option `no_unions` for the oneof field. This will generate fields as separate instead of C union, and avoids triggering the problematic code. 2) Set the type of the submessage field inside oneof to `FT_POINTER`. This way the whole submessage will be dynamically allocated and the problematic code is not executed. 3) Use an arena allocator for nanopb, to make sure all memory can be released afterwards.

Is CVE-2020-26243 actively exploited?

Active exploitation of CVE-2020-26243 has not been confirmed. Its EPSS score was 2.7% on 2026-11-09, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2020-26243?

CVE-2020-26243 has a CVSS v3 base score of 7.5 (HIGH severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.

Running nanopb? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record