CVE-2024-53984
Nanopb does not release memory on error return when using PB_DECODE_DELIMITED
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
4.3
Nanopb does not release memory on error return when using PB_DECODE_DELIMITED
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
- Record
CVE-2024-53984- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-401, CWE-755
- Updated
- 2026-11-02
EUVDEUVD-2024-52228
4.3
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
- Record
EUVD-2024-52228- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-03
NVD
4.3
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
- Record
CVE-2024-53984- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-401, CWE-755
- Updated
- 2026-11-02
OSV
4.3
Nanopb does not release memory on error return when using PB_DECODE_DELIMITED
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
- Record
CVE-2024-53984- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-401, CWE-755
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-53984
4.3
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
- Record
DEBIAN-CVE-2024-53984- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2024-53984
4.3
Nanopb is a small code-size Protocol Buffers implementation. When the compile time option PB_ENABLE_MALLOC is enabled, the message contains at least one field with FT_POINTER field type, custom stream callback is used with unknown stream length. and the pb_decode_ex() function is used with flag PB_DECODE_DELIMITED, then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases. This could lead to memory leak and potential denial-of-service. This vulnerability is fixed in 0.4.9.1.
- Record
UBUNTU-CVE-2024-53984- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVopenSUSE-SU-2024:0400-1 No score
Security update for nanopb
This update for nanopb fixes the following issues:
- CVE-2024-53984: Fix memory not released on error return (boo#1234088)
- Record
openSUSE-SU-2024:0400-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nanopbDebian:12 |
All versions, plus listed versions 0.4.7-20.4.7-30.4.8-10.4.8-20.4.9-10.4.9.1-10.4.9.1-2 |
None known |
nanopbDebian:13 |
before 0.4.9.1-1 | 0.4.9.1-1 |
nanopbDebian:14 |
before 0.4.9.1-1 | 0.4.9.1-1 |
nanopbUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 0.4.1-10.4.1-1ubuntu0.1~esm1 |
None known |
nanopbUbuntu:22.04:LTS |
All versions, plus listed versions 0.4.4-20.4.5-10.4.5-2 |
None known |
nanopbUbuntu:24.04:LTS |
All versions, plus listed versions 0.4.7-20.4.7-30.4.8-1 |
None known |
nanopbUbuntu:25.10 |
All versions, plus listed versions 0.4.9.1-1 |
None known |
nanopbUbuntu:26.10 |
All versions, plus listed versions 0.4.9.1-1build10.4.9.1-2 |
None known |
nanopbUbuntu:26.04:LTS |
All versions, plus listed versions 0.4.9.1-10.4.9.1-1build1 |
None known |
nanopbSUSE:Package Hub 15 SP6 |
before 0.4.6-bp156.4.3.1 | 0.4.6-bp156.4.3.1 |
nanopbopenSUSE:Leap 15.6 |
before 0.4.6-bp156.4.3.1 | 0.4.6-bp156.4.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-53984 is a medium vulnerability (CVSS 4.3) in Nanopb, published December 2, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.41%, the 35th percentile. Fixed in nanopb 0.4.9.1-1.
References
github.com/nanopb/nanopb/security/advisories/GHSA-xwqq-qxmw-hj5r
github.com/nanopb/nanopb/commit/2b86c255aa52250438d5aba124d0e86db495b378
github.com/CVEProject/cvelistV5/tree/main/cves/2024/53xxx/CVE-2024-53984.json
nvd.nist.gov/vuln/detail/CVE-2024-53984
security-tracker.debian.org/tracker/CVE-2024-53984
ubuntu.com/security/CVE-2024-53984