Lucene search

K
cvelistGitHub_MCVELIST:CVE-2021-21401
HistoryMar 23, 2021 - 5:45 p.m.

CVE-2021-21401 Invalid free() call in Nanopb

2021-03-2317:45:19
CWE-763
GitHub_M
www.cve.org

7.1 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

HIGH

Availability Impact

LOW

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L

0.002 Low

EPSS

Percentile

53.6%

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.

CNA Affected

[
  {
    "product": "nanopb",
    "vendor": "nanopb",
    "versions": [
      {
        "status": "affected",
        "version": ">= 0.3.2, <= 0.3.9.7"
      },
      {
        "status": "affected",
        "version": ">= 0.4.0, <= 0.4.4"
      }
    ]
  }
]

7.1 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

HIGH

Availability Impact

LOW

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L

0.002 Low

EPSS

Percentile

53.6%