CVE-2021-22570: Withdrawn Advisory: NULL Pointer Dereference in Protocol Buffers

CVE-2021-22570 · Severity: low · CVSS 3.1 · Published 2022-01-26

Nullptr dereference when a null char is present in a proto symbol. The symbol is parsed incorrectly, leading to an unchecked call into the proto file's name during generation of the resulting error message. Since the symbol is incorrectly parsed, the file is nullptr. We recommend upgrading to version 3.15.0 or greater.

Technologies: com.google.protobuf:protobuf-java (Maven), google/protobuf (Packagist), protobuf (PyPI). Vendors: Go, Maven, NuGet, Packagist, PyPI.

Quick answers

Is CVE-2021-22570 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2021-22570 being exploited in the wild.
How severe is CVE-2021-22570?
Low severity, with a CVSS score of 3.1, published 26 January 2022.
Which products and versions are affected?
github.com/protocolbuffers/protobuf (Go) SEMVER:introduced=0,fixed=0.0.0-20210218195015-ae50d9b99025; com.google.protobuf:protobuf-java (Maven) ECOSYSTEM:introduced=0,fixed=3.15.0; Google.Protobuf (NuGet) ECOSYSTEM:introduced=0,fixed=3.15.0; google/protobuf (Packagist) ECOSYSTEM:introduced=0,fixed=3.15.0; and 1 more.
Is there a fix for CVE-2021-22570?
Yes. github.com/protocolbuffers/protobuf (Go): upgrade to 0.0.0-20210218195015-ae50d9b99025 or later; com.google.protobuf:protobuf-java (Maven): upgrade to 3.15.0 or later; Google.Protobuf (NuGet): upgrade to 3.15.0 or later; google/protobuf (Packagist): upgrade to 3.15.0 or later; protobuf (PyPI): upgrade to 3.15.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
Am I affected by CVE-2021-22570?
Check whether you run github.com/protocolbuffers/protobuf (Go), com.google.protobuf:protobuf-java (Maven), Google.Protobuf (NuGet) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/protocolbuffers/protobuf (Go): upgrade to 0.0.0-20210218195015-ae50d9b99025 or later
    go get github.com/protocolbuffers/protobuf@v0.0.0-20210218195015-ae50d9b99025
  • com.google.protobuf:protobuf-java (Maven): upgrade to 3.15.0 or later
    # set com.google.protobuf:protobuf-java to 3.15.0 in your pom.xml or build.gradle
  • Google.Protobuf (NuGet): upgrade to 3.15.0 or later
    dotnet add package Google.Protobuf --version 3.15.0
  • google/protobuf (Packagist): upgrade to 3.15.0 or later
    composer require google/protobuf:^3.15.0
  • protobuf (PyPI): upgrade to 3.15.0 or later
    pip install "protobuf>=3.15.0"

Affected products

  • github.com/protocolbuffers/protobuf (Go) SEMVER:introduced=0,fixed=0.0.0-20210218195015-ae50d9b99025
  • com.google.protobuf:protobuf-java (Maven) ECOSYSTEM:introduced=0,fixed=3.15.0
  • Google.Protobuf (NuGet) ECOSYSTEM:introduced=0,fixed=3.15.0
  • google/protobuf (Packagist) ECOSYSTEM:introduced=0,fixed=3.15.0
  • protobuf (PyPI) ECOSYSTEM:introduced=0,fixed=3.15.0

Identifiers

  • CVE-2021-22570
  • GHSA-77rm-9x9h-xj3g
  • PYSEC-2022-48

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.