Cloudanix VulnDB

CVE-2022-3171

High · 7.5

CVSS

7.5

EPSS

1.3%

Published

Oct 12, 2022

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A common data handling library can be overwhelmed by certain inputs, causing applications that use it to slow down or become unavailable.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

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.

Why it matters to the business

Services relying on protobuf parsing may experience availability disruptions or outages from resource exhaustion triggered by crafted inputs, increasing operational costs and affecting downstream systems that depend on the library.

How an attack unfolds

An attacker crafts a protobuf message containing multiple non-repeated embedded messages with repeated or unknown fields and sends it to a vulnerable application, causing repeated mutable-to-immutable conversions that trigger extended garbage collection pauses and denial of service.

How to fix it

Update protocolbuffers/protobuf to the fixed commit b8c2488f480bbe3d66b9874c2fcd434201caa48a or to versions 3.21.7, 3.20.3, 3.19.6, 3.16.3 or later in all dependencies.

How to confirm the fix worked

Confirm the protobuf-java version in build files or runtime dependencies meets or exceeds the fixed versions, then test parsing of multi-embedded message inputs to verify absence of excessive GC activity.

Typical attack path

  1. Identify a network-accessible service using vulnerable protobuf-java
  2. Craft a binary protobuf payload with multiple non-repeated embedded messages containing repeated or unknown fields
  3. Transmit the payload to trigger parsing
  4. Induce repeated object conversions leading to prolonged GC pauses and service degradation

How to detect it

Review application logs and Java runtime metrics for sudden spikes in garbage collection duration or CPU usage during protobuf deserialization; correlate with inbound network traffic containing protobuf payloads.

What your security team should do

  • Prioritize upgrade of protobuf-java across all affected packages to the fixed commit or listed versions
  • Audit dependency trees for transitive protobuf usage and enforce version pinning
  • Monitor Java GC metrics in applications handling protobuf data for anomalous pauses

The record

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.

Affected packages

Ecosystem Package Introduced Fixed
Maven com.google.protobuf:protobuf-java 0 3.16.3
Maven com.google.protobuf:protobuf-java 3.17.0-rc-1 3.19.6
Maven com.google.protobuf:protobuf-java 3.20.0-rc-1 3.20.3
Maven com.google.protobuf:protobuf-java 3.21.0-rc-1 3.21.7
Maven com.google.protobuf:protobuf-javalite 0 3.16.3
Maven com.google.protobuf:protobuf-javalite 3.17.0-rc-1 3.19.6
Maven com.google.protobuf:protobuf-javalite 3.20.0-rc-1 3.20.3
Maven com.google.protobuf:protobuf-javalite 3.21.0-rc-1 3.21.7
Maven com.google.protobuf:protobuf-kotlin 0 3.16.3
Maven com.google.protobuf:protobuf-kotlin 3.17.0-rc-1 3.19.6
Maven com.google.protobuf:protobuf-kotlin 3.20.0-rc-1 3.20.3
Maven com.google.protobuf:protobuf-kotlin 3.21.0-rc-1 3.21.7
Maven com.google.protobuf:protobuf-kotlin-lite 0 3.16.3
Maven com.google.protobuf:protobuf-kotlin-lite 3.17.0-rc-1 3.19.6
Maven com.google.protobuf:protobuf-kotlin-lite 3.20.0-rc-1 3.20.3
Maven com.google.protobuf:protobuf-kotlin-lite 3.21.0-rc-1 3.21.7
RubyGems google-protobuf 0 3.16.3
RubyGems google-protobuf 3.17.0.rc.1 3.19.6
RubyGems google-protobuf 3.20.0.rc.1 3.20.3
RubyGems google-protobuf 3.21.0.rc.1 3.21.7
Chainguard apache-nifi 0 1.26.0-r2
Chainguard apache-nifi 0 2.6.0-r2
Chainguard apache-nifi-compat 0 2.6.0-r2
Chainguard apache-nifi-toolkit 0 2.6.0-r2
Chainguard dotty 0 3.4.0-r0
Chainguard druid-compat 0 34.0.0-r6
Chainguard emsdk 0 5.0.0-r1
Chainguard hadoop-client-modules 0 3.3.6-r8
Chainguard spark-3.5 0 3.5.7-r2
Chainguard spark-3.5-scala-2.12-compat 0 3.5.7-r2
Chainguard spark-3.5-scala-2.12-iamguarded-compat 0 3.5.7-r2
Chainguard spark-3.5-scala-2.13-compat 0 3.5.7-r2
Chainguard spark-3.5.0-compat 0 0
Chainguard spark-fips-3.5 0 3.5.4-r17
Chainguard spark-fips-3.5-scala-2.12-compat 0 3.5.4-r17
Chainguard spark-fips-3.5-scala-2.13-compat 0 3.5.4-r17
Chainguard trino 0 439-r0
Chainguard trino-config 0 439-r0
Chainguard trino-oci-entrypoint 0 439-r0
Chainguard trino-plugin-accumulo 0 439-r0
Chainguard trino-plugin-ai-functions 0 439-r0
Chainguard trino-plugin-atop 0 439-r0
Chainguard trino-plugin-bigquery 0 439-r0
Chainguard trino-plugin-blackhole 0 439-r0
Chainguard trino-plugin-cassandra 0 439-r0
Chainguard trino-plugin-clickhouse 0 439-r0
Chainguard trino-plugin-delta-lake 0 439-r0
Chainguard trino-plugin-druid 0 439-r0
Chainguard trino-plugin-duckdb 0 439-r0
Chainguard trino-plugin-elasticsearch 0 439-r0
Chainguard trino-plugin-example-http 0 439-r0
Chainguard trino-plugin-exasol 0 439-r0
Chainguard trino-plugin-exchange-filesystem 0 439-r0
Chainguard trino-plugin-exchange-hdfs 0 439-r0
Chainguard trino-plugin-faker 0 439-r0
Chainguard trino-plugin-functions-python 0 439-r0
Chainguard trino-plugin-geospatial 0 439-r0
Chainguard trino-plugin-google-sheets 0 439-r0
Chainguard trino-plugin-hive 0 439-r0
Chainguard trino-plugin-http-event-listener 0 439-r0
Chainguard trino-plugin-http-server-event-listener 0 439-r0
Chainguard trino-plugin-hudi 0 439-r0
Chainguard trino-plugin-iceberg 0 439-r0
Chainguard trino-plugin-ignite 0 439-r0
Chainguard trino-plugin-jmx 0 439-r0
Chainguard trino-plugin-kafka 0 439-r0
Chainguard trino-plugin-kafka-event-listener 0 439-r0
Chainguard trino-plugin-kinesis 0 439-r0
Chainguard trino-plugin-kudu 0 439-r0
Chainguard trino-plugin-lakehouse 0 439-r0
Chainguard trino-plugin-ldap-group-provider 0 439-r0
Chainguard trino-plugin-local-file 0 439-r0
Chainguard trino-plugin-loki 0 439-r0
Chainguard trino-plugin-mariadb 0 439-r0
Chainguard trino-plugin-memory 0 439-r0
Chainguard trino-plugin-ml 0 439-r0
Chainguard trino-plugin-mongodb 0 439-r0
Chainguard trino-plugin-mysql 0 439-r0
Chainguard trino-plugin-mysql-event-listener 0 439-r0
Chainguard trino-plugin-opa 0 439-r0
Chainguard trino-plugin-openlineage 0 439-r0
Chainguard trino-plugin-opensearch 0 439-r0
Chainguard trino-plugin-oracle 0 439-r0
Chainguard trino-plugin-password-authenticators 0 439-r0
Chainguard trino-plugin-phoenix5 0 439-r0
Chainguard trino-plugin-pinot 0 439-r0
Chainguard trino-plugin-postgresql 0 439-r0
Chainguard trino-plugin-prometheus 0 439-r0
Chainguard trino-plugin-ranger 0 439-r0
Chainguard trino-plugin-raptor-legacy 0 439-r0
Chainguard trino-plugin-redis 0 439-r0
Chainguard trino-plugin-redshift 0 439-r0
Chainguard trino-plugin-resource-group-managers 0 439-r0
Chainguard trino-plugin-session-property-managers 0 439-r0
Chainguard trino-plugin-singlestore 0 439-r0
Chainguard trino-plugin-snowflake 0 439-r0
Chainguard trino-plugin-spooling-filesystem 0 439-r0
Chainguard trino-plugin-sqlserver 0 439-r0
Chainguard trino-plugin-teradata-functions 0 439-r0
Chainguard trino-plugin-thrift 0 439-r0
Chainguard trino-plugin-tpcds 0 439-r0
Chainguard trino-plugin-tpch 0 439-r0
Chainguard trino-plugin-vertica 0 439-r0
Debian:11 protobuf 0 No fix
Debian:12 protobuf 0 3.21.9-3
Debian:13 protobuf 0 3.21.9-3
Mageia:8 protobuf 0 3.14.0-1.2.mga8
SUSE:Enterprise Storage 7 protobuf 0 3.9.2-150200.4.19.2
SUSE:Enterprise Storage 7 python-Automat 0 0.6.0-150000.3.4.1
SUSE:Enterprise Storage 7 python-constantly 0 15.1.0-150000.3.4.1
SUSE:Enterprise Storage 7 python-hyperlink 0 17.2.1-150000.3.4.1
SUSE:Enterprise Storage 7 python-incremental 0 17.5.0-150000.3.4.1
SUSE:Enterprise Storage 7 python-psutil 0 5.9.1-150100.6.6.3
SUSE:Enterprise Storage 7 python-requests 0 2.25.1-150100.6.13.3
SUSE:Enterprise Storage 7 python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Enterprise Storage 7 python-zope.interface 0 4.4.2-150000.3.4.1
SUSE:Enterprise Storage 7.1 python-Automat 0 0.6.0-150000.3.4.1
SUSE:Enterprise Storage 7.1 python-constantly 0 15.1.0-150000.3.4.1
SUSE:Enterprise Storage 7.1 python-hyperlink 0 17.2.1-150000.3.4.1
SUSE:Enterprise Storage 7.1 python-incremental 0 17.5.0-150000.3.4.1
SUSE:Enterprise Storage 7.1 python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Enterprise Storage 7.1 python-zope.interface 0 4.4.2-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS protobuf 0 3.9.2-150100.8.3.3
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS python-cryptography 0 3.3.2-150100.7.15.3
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS python-psutil 0 5.9.1-150100.6.6.3
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS python-requests 0 2.25.1-150100.6.13.3
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-Automat 0 0.6.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-constantly 0 15.1.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-hyperlink 0 17.2.1-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-incremental 0 17.5.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-psutil 0 5.9.1-150100.6.6.3
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-requests 0 2.25.1-150100.6.13.3
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS python-zope.interface 0 4.4.2-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS python-Automat 0 0.6.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS python-constantly 0 15.1.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS python-hyperlink 0 17.2.1-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS python-incremental 0 17.5.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS python-zope.interface 0 4.4.2-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python-Automat 0 0.6.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python-constantly 0 15.1.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python-hyperlink 0 17.2.1-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python-incremental 0 17.5.0-150000.3.4.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python-zope.interface 0 4.4.2-150000.3.4.1
SUSE:Linux Enterprise Installer Updates 15 SP1 protobuf 0 3.9.2-150100.8.3.3
SUSE:Linux Enterprise Installer Updates 15 SP2 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Micro 5.1 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Micro 5.2 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Micro 5.3 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Basesystem 15 SP3 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Basesystem 15 SP4 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Basesystem 15 SP4 python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise Module for Basesystem 15 SP5 python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise Module for Development Tools 15 SP3 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Development Tools 15 SP4 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Package Hub 15 SP3 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Package Hub 15 SP4 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Package Hub 15 SP5 python-humanfriendly 0 10.0-150100.6.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 azure-cli-core 0 2.17.1-150100.6.18.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 grpc 0 1.25.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 protobuf 0 3.9.2-150100.8.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-Deprecated 0 1.2.13-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-PyGithub 0 1.43.5-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-Twisted 0 17.9.0-150000.3.8.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-aiocontextvars 0 0.2.2-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-avro 0 1.11.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-cryptography 0 3.3.2-150100.7.15.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-cryptography-vectors 0 3.3.2-150100.3.11.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-google-api-core 0 1.14.2-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-googleapis-common-protos 0 1.6.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-grpcio-gcp 0 0.2.2-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-humanfriendly 0 10.0-150100.6.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-jsondiff 0 1.3.0-150100.3.6.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-knack 0 0.9.0-150100.3.7.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-opencensus 0 0.8.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-opencensus-context 0 0.1.2-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-opencensus-ext-threading 0 0.1.2-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-opentelemetry-api 0 1.5.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-psutil 0 5.9.1-150100.6.6.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-pytest 0 3.10.1-150000.7.5.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-pytest-asyncio 0 0.8.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-requests 0 2.25.1-150100.6.13.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-websocket-client 0 1.3.2-150100.6.7.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-websockets 0 9.1-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 python-zope.interface 0 4.4.2-150000.3.4.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 azure-cli-core 0 2.17.1-150100.6.18.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 protobuf 0 3.9.2-150200.4.19.2
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-Deprecated 0 1.2.13-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-PyGithub 0 1.43.5-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-aiocontextvars 0 0.2.2-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-avro 0 1.11.0-150100.3.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-humanfriendly 0 10.0-150100.6.3.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-jsondiff 0 1.3.0-150100.3.6.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-knack 0 0.9.0-150100.3.7.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP2 python-opencensus 0 0.8.0-150100.3.3.3

Related vulnerabilities