CVE-2024-53984 Nanopb does not release memory on error return when using PB_DECODE_DELIMITED
Attackers can cause memory leaks and denial of service in Nanopb by exploiting specific decoding conditions with custom stream callbacks.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-53984?
CVE-2024-53984 is a medium-severity denial of service vulnerability in nanopb, published on 2 Dec 2024. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
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.
Which versions are affected by CVE-2024-53984?
Linux distribution packages (2)
nanopb SUSE:Package Hub 15 SP6 | All versions | 0.4.6-bp156.4.3.1 |
nanopb openSUSE:Leap 15.6 | All versions | 0.4.6-bp156.4.3.1 |
How do I fix CVE-2024-53984?
Upgrade to a fixed version.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2024-53984 being exploited?
There is no known exploitation of CVE-2024-53984 in the wild and no public exploit code.
Sources
Also known as DEBIAN-CVE-2024-53984, GHSA-xwqq-qxmw-hj5r, UBUNTU-CVE-2024-53984, openSUSE-SU-2024:0400-1.