Cloudanix VulnDB

CVE-2022-3510

High · 7.5

CVSS

7.5

EPSS

0.7%

Published

Dec 12, 2022

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A problem processing certain data files can make software using a common library freeze for long periods while cleaning up memory, causing outages.

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

Specially crafted protobuf inputs with multiple non-repeated embedded messages containing repeated or unknown fields trigger repeated mutable-to-immutable conversions in protobuf-java core and lite, causing extended garbage collection pauses and denial of service.

Why it matters to the business

Applications handling untrusted protobuf data may experience prolonged unresponsiveness or outages, increasing operational costs and disrupting dependent services across ecosystems with high protobuf usage.

How an attack unfolds

An attacker sends a network or file input containing repeated instances of non-repeated embedded messages with repeated or unknown fields to a vulnerable protobuf-java parser; the library repeatedly converts objects between mutable and immutable forms, exhausting CPU time in garbage collection and denying service to legitimate users.

How to fix it

Upgrade protocolbuffers/protobuf (GIT) to the fixed commit db7c17803320525722f45c1d26fc08bc41d1bf48 or adopt protobuf-java versions 3.21.7, 3.20.3, 3.19.6 or 3.16.3 or later. Validate all downstream dependencies and rebuild affected applications.

How to confirm the fix worked

Confirm the protobuf-java version in use matches a fixed release, then replay known trigger inputs in a test environment to verify absence of long GC pauses and service availability under load.

Typical attack path

  1. Identify a service accepting protobuf messages over the network or via files
  2. Craft a message with multiple non-repeated embedded messages that include repeated or unknown fields
  3. Transmit the malicious protobuf payload to the target parser
  4. Observe resource exhaustion from repeated mutable/immutable conversions and extended GC pauses

How to detect it

Review application and garbage collection logs for unusually long pause durations coinciding with protobuf parsing activity; correlate with inbound message volume spikes from untrusted sources.

What your security team should do

  • Immediately inventory all applications using protobuf-java and schedule upgrades to fixed versions
  • Apply network-level input validation or size limits on protobuf messages as a temporary control
  • Monitor application logs and GC metrics for sudden spikes after any exposure window

The record

A parsing issue similar to CVE-2022-3171, but with Message-Type Extensions 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.0.0 3.16.3
Maven com.google.protobuf:protobuf-java 3.17.0 3.19.6
Maven com.google.protobuf:protobuf-java 3.20.0 3.20.3
Maven com.google.protobuf:protobuf-java 3.21.0 3.21.7
Maven com.google.protobuf:protobuf-javalite 0 3.16.3
Maven com.google.protobuf:protobuf-javalite 3.0.0 3.16.3
Maven com.google.protobuf:protobuf-javalite 3.17.0 3.19.6
Maven com.google.protobuf:protobuf-javalite 3.20.0 3.20.3
Maven com.google.protobuf:protobuf-javalite 3.21.0 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
Ubuntu:20.04:LTS protobuf 0 No fix
Ubuntu:22.04:LTS protobuf 0 No fix
Ubuntu:Pro:14.04:LTS protobuf 0 No fix
Ubuntu:Pro:16.04:LTS protobuf 0 No fix
Ubuntu:Pro:18.04:LTS protobuf 0 No fix
Ubuntu:Pro:20.04:LTS protobuf 0 No fix
Wolfi apache-nifi 0 2.6.0-r2
Wolfi apache-nifi-compat 0 2.6.0-r2
Wolfi apache-nifi-toolkit 0 2.6.0-r2
Wolfi dotty 0 3.4.0-r0
Wolfi druid-compat 0 34.0.0-r6
Wolfi spark-3.5 0 3.5.7-r2
Wolfi spark-3.5-scala-2.12-compat 0 3.5.7-r2
Wolfi spark-3.5-scala-2.12-iamguarded-compat 0 3.5.7-r2
Wolfi spark-3.5-scala-2.13-compat 0 3.5.7-r2
Wolfi trino 0 439-r0
Wolfi trino-config 0 439-r0
Wolfi trino-oci-entrypoint 0 439-r0
Wolfi trino-plugin-accumulo 0 439-r0
Wolfi trino-plugin-ai-functions 0 439-r0
Wolfi trino-plugin-atop 0 439-r0
Wolfi trino-plugin-bigquery 0 439-r0
Wolfi trino-plugin-blackhole 0 439-r0
Wolfi trino-plugin-cassandra 0 439-r0
Wolfi trino-plugin-clickhouse 0 439-r0
Wolfi trino-plugin-delta-lake 0 439-r0
Wolfi trino-plugin-druid 0 439-r0
Wolfi trino-plugin-duckdb 0 439-r0
Wolfi trino-plugin-elasticsearch 0 439-r0
Wolfi trino-plugin-example-http 0 439-r0
Wolfi trino-plugin-exasol 0 439-r0
Wolfi trino-plugin-exchange-filesystem 0 439-r0
Wolfi trino-plugin-exchange-hdfs 0 439-r0
Wolfi trino-plugin-faker 0 439-r0
Wolfi trino-plugin-functions-python 0 439-r0
Wolfi trino-plugin-geospatial 0 439-r0
Wolfi trino-plugin-google-sheets 0 439-r0
Wolfi trino-plugin-hive 0 439-r0
Wolfi trino-plugin-http-event-listener 0 439-r0
Wolfi trino-plugin-http-server-event-listener 0 439-r0
Wolfi trino-plugin-hudi 0 439-r0
Wolfi trino-plugin-iceberg 0 439-r0
Wolfi trino-plugin-ignite 0 439-r0
Wolfi trino-plugin-jmx 0 439-r0
Wolfi trino-plugin-kafka 0 439-r0
Wolfi trino-plugin-kafka-event-listener 0 439-r0
Wolfi trino-plugin-kinesis 0 439-r0
Wolfi trino-plugin-kudu 0 439-r0
Wolfi trino-plugin-lakehouse 0 439-r0
Wolfi trino-plugin-ldap-group-provider 0 439-r0
Wolfi trino-plugin-local-file 0 439-r0
Wolfi trino-plugin-loki 0 439-r0
Wolfi trino-plugin-mariadb 0 439-r0
Wolfi trino-plugin-memory 0 439-r0
Wolfi trino-plugin-ml 0 439-r0
Wolfi trino-plugin-mongodb 0 439-r0
Wolfi trino-plugin-mysql 0 439-r0
Wolfi trino-plugin-mysql-event-listener 0 439-r0
Wolfi trino-plugin-opa 0 439-r0
Wolfi trino-plugin-openlineage 0 439-r0
Wolfi trino-plugin-opensearch 0 439-r0
Wolfi trino-plugin-oracle 0 439-r0
Wolfi trino-plugin-password-authenticators 0 439-r0
Wolfi trino-plugin-phoenix5 0 439-r0
Wolfi trino-plugin-pinot 0 439-r0
Wolfi trino-plugin-postgresql 0 439-r0
Wolfi trino-plugin-prometheus 0 439-r0
Wolfi trino-plugin-ranger 0 439-r0
Wolfi trino-plugin-raptor-legacy 0 439-r0
Wolfi trino-plugin-redis 0 439-r0
Wolfi trino-plugin-redshift 0 439-r0
Wolfi trino-plugin-resource-group-managers 0 439-r0
Wolfi trino-plugin-session-property-managers 0 439-r0
Wolfi trino-plugin-singlestore 0 439-r0
Wolfi trino-plugin-snowflake 0 439-r0
Wolfi trino-plugin-spooling-filesystem 0 439-r0
Wolfi trino-plugin-sqlserver 0 439-r0
Wolfi trino-plugin-teradata-functions 0 439-r0
Wolfi trino-plugin-thrift 0 439-r0
Wolfi trino-plugin-tpcds 0 439-r0
Wolfi trino-plugin-tpch 0 439-r0
Wolfi trino-plugin-vertica 0 439-r0
maven com.google.protobuf/protobuf-java 3.0.0 3.16.3
maven com.google.protobuf/protobuf-java 3.16.0 3.16.3
maven com.google.protobuf/protobuf-java 3.17.0 3.19.6
maven com.google.protobuf/protobuf-java 3.19.0 3.19.6
maven com.google.protobuf/protobuf-java 3.20.0 3.20.3
maven com.google.protobuf/protobuf-java 3.21.0 3.21.7
maven com.google.protobuf/protobuf-javalite 3.0.0 3.16.3
maven com.google.protobuf/protobuf-javalite 3.17.0 3.19.6
maven com.google.protobuf/protobuf-javalite 3.20.0 3.20.3
maven com.google.protobuf/protobuf-javalite 3.21.0 3.21.7

Related vulnerabilities