CVE-2022-3171 Memory handling vulnerability in ProtocolBuffers Java core and lite

Medium 4.3 Published Updated

Attackers can cause denial of service via long garbage collection pauses by sending crafted binary data to applications using the Protocol Buffers Java library.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2022-3171?

CVE-2022-3171 is a medium-severity denial of service vulnerability in Fedoraproject Fedora, published on 12 Oct 2022. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

A parsing issue with binary data in protobuf-java core and lite versions prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses. We recommend updating to the versions mentioned above.

Weakness: CWE-20

Which versions are affected by CVE-2022-3171?

40 open source packages ship an affected version, including com.google.protobuf:protobuf-java, com.google.protobuf:protobuf-javalite and com.google.protobuf:protobuf-kotlin. It affects 6 products.

PackageAffectedFixed in
com.google.protobuf:protobuf-java MavenAll versions3.16.3
com.google.protobuf:protobuf-java MavenAll versions3.16.3
com.google.protobuf:protobuf-java MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-java MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-java MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-java MavenFrom 3.20.0-rc-13.20.3
34 more packages
com.google.protobuf:protobuf-java MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-java MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-javalite MavenAll versions3.16.3
com.google.protobuf:protobuf-javalite MavenAll versions3.16.3
com.google.protobuf:protobuf-javalite MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-javalite MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-javalite MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-javalite MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-javalite MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-javalite MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-kotlin MavenAll versions3.16.3
com.google.protobuf:protobuf-kotlin MavenAll versions3.16.3
com.google.protobuf:protobuf-kotlin MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-kotlin MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-kotlin MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-kotlin MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-kotlin MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-kotlin MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-kotlin-lite MavenAll versions3.16.3
com.google.protobuf:protobuf-kotlin-lite MavenAll versions3.16.3
com.google.protobuf:protobuf-kotlin-lite MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-kotlin-lite MavenFrom 3.17.0-rc-13.19.6
com.google.protobuf:protobuf-kotlin-lite MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-kotlin-lite MavenFrom 3.20.0-rc-13.20.3
com.google.protobuf:protobuf-kotlin-lite MavenFrom 3.21.0-rc-13.21.7
com.google.protobuf:protobuf-kotlin-lite MavenFrom 3.21.0-rc-13.21.7
google-protobuf RubyGemsAll versions3.16.3
google-protobuf RubyGemsAll versions3.16.3
google-protobuf RubyGemsFrom 3.17.0.rc.13.19.6
google-protobuf RubyGemsFrom 3.17.0.rc.13.19.6
google-protobuf RubyGemsFrom 3.20.0.rc.13.20.3
google-protobuf RubyGemsFrom 3.20.0.rc.13.20.3
google-protobuf RubyGemsFrom 3.21.0.rc.13.21.7
google-protobuf RubyGemsFrom 3.21.0.rc.13.21.7

Products include Fedoraproject Fedora, Google Google-Protobuf, Google Protobuf-Java, Google Protobuf-Javalite, Google Protobuf-Kotlin, Google Protobuf-Kotlin-Lite.

How do I fix CVE-2022-3171?

Upgrade com.google.protobuf:protobuf-java to a fixed version for your release line: 3.16.3, 3.19.6, 3.20.3 or 3.21.7.

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-2022-3171 being exploited?

There is no known exploitation of CVE-2022-3171 in the wild and no public exploit code.

All Fedoraproject Fedora vulnerabilities

Sources

Also known as CLEANSTART-2026-AV57631, CLEANSTART-2026-FD57145, DEBIAN-CVE-2022-3171, ECHO-7811-b7c6-2509, GHSA-h4h5-3hr4-j3g2, MINI-243g-q5cw-w5hf and 6 more.

Is CVE-2022-3171 in your software?

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

Check your SBOMs for free