Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security Vulnerability - Action Required: Improper Input Validation vulnerability may in your project #353

Open
Crispy-fried-chicken opened this issue Sep 11, 2024 · 0 comments

Comments

@Crispy-fried-chicken
Copy link

Hi,
we have detected that your project may be vulnerable to Insufficient Information in the function of decode_static_field in the file of lib/transport/pb_decode.c. It shares similarities to a recent CVE disclosure https://nvd.nist.gov/vuln/detail/CVE-2020-26243 in the https://github.com/nanopb/nanopb.
The source vulnerability information is as follows:

Vulnerability Detail:
CVE Identifier:CVE-2020-26243
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.
Reference: https://nvd.nist.gov/vuln/detail/CVE-2020-26243
Patch: nanopb/nanopb@4fe2359

Would you help to check if this bug is true? If it's true, I'd like to open a PR for that if necessary. Thank you for your effort and patience!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant