- Description
- Nanopb is a small code-size Protocol Buffers implementation in ansi C. In Nanopb before versions 0.3.9.8 and 0.4.5, decoding a specifically formed message can cause invalid `free()` or `realloc()` calls if the message type contains an `oneof` field, and the `oneof` directly contains both a pointer field and a non-pointer field. If the message data first contains the non-pointer field and then the pointer field, the data of the non-pointer field is incorrectly treated as if it was a pointer value. Such message data rarely occurs in normal messages, but it is a concern when untrusted data is parsed. This has been fixed in versions 0.3.9.8 and 0.4.5. See referenced GitHub Security Advisory for more information including workarounds.
- Source
- security-advisories@github.com
- NVD status
- Analyzed
CVSS 3.1
- Type
- Primary
- Base score
- 7.1
- Impact score
- 4.2
- Exploitability score
- 2.8
- Vector string
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
- Severity
- HIGH
CVSS 2.0
- Type
- Primary
- Base score
- 5.5
- Impact score
- 4.9
- Exploitability score
- 8
- Vector string
- AV:N/AC:L/Au:S/C:N/I:P/A:P
- security-advisories@github.com
- CWE-763
- Hype score
- Not currently trending
[
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "A39AC3AB-38B5-453C-B7A8-AC4B55CA26B3",
"versionEndExcluding": "0.3.9.8"
},
{
"criteria": "cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "751F562A-CABC-4E22-A0A3-12BF6171B6AE",
"versionEndExcluding": "0.4.5",
"versionStartIncluding": "0.4.0"
}
],
"operator": "OR"
}
]
}
]