CVE-2024-53984 Nanopb does not release memory on error return when using PB_DECODE_DELIMITED

Medium 4.3 Published Updated

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.

Weakness: CWE-755, CWE-401

Which versions are affected by CVE-2024-53984?

Linux distribution packages (2)
nanopb SUSE:Package Hub 15 SP6All versions0.4.6-bp156.4.3.1
nanopb openSUSE:Leap 15.6All versions0.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.

Is CVE-2024-53984 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free