CVE-2026-0994: Google Protobuf denial of service in Python json_format.ParseDict

CVE-2026-0994 · Severity: high · CVSS 7.5 · Published 2026-01-23

A security vulnerability has been identified in the Python implementation of Google Protocol Buffers (Protobuf), a widely used tool for serializing and exchanging data between applications. An attacker can send specially crafted, deeply nested data structures that bypass safety limits, causing the application to crash. This results in a denial-of-service (DoS) condition, potentially disrupting business operations and service availability.

Technologies: Google Protobuf, protobuf (PyPI). Vendors: Google, PyPI.

Quick answers

Is CVE-2026-0994 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-0994 being exploited in the wild.
How severe is CVE-2026-0994?
High severity, with a CVSS score of 7.5, published 23 January 2026.
Which products and versions are affected?
Google Protobuf Python implementation prior to fix in PR 25239; protobuf (PyPI) ECOSYSTEM:introduced=0,fixed=5.29.6,introduced=6.30.0rc1,fixed=6.33.5, ECOSYSTEM:introduced=6.30.0rc1,fixed=6.33.5.
Is there a fix for CVE-2026-0994?
Yes. protobuf (PyPI): upgrade to 6.33.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-0994 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-0994?
Check whether you run Google Protobuf or protobuf (PyPI) 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

  • protobuf (PyPI): upgrade to 6.33.5 or later
    pip install "protobuf>=6.33.5"

Technical details

A denial-of-service vulnerability (CWE-674) exists in the Python implementation of Google Protocol Buffers within the `google.protobuf.json_format.ParseDict()` function. The root cause is missing recursion depth accounting in the internal `Any`-handling logic; specifically, `_ConvertAnyMessage()` recursively calls itself via `methodcaller()` for nested well-known types, bypassing the intended `max_recursion_depth` limit. A remote, unauthenticated attacker can exploit this by providing deeply nested `google.protobuf.Any` structures, leading to a `RecursionError` and process crash due to stack exhaustion. A fix has been developed to route well-known type parsing through `ConvertMessage()` to ensure proper depth tracking. Red Hat has released several advisories (e.g., RHSA-2026:3059) to patch affected enterprise software.

Affected products

  • Google Protobuf Python implementation prior to fix in PR 25239
  • Red Hat Enterprise Linux 8, 9, 10
  • Red Hat Ansible Automation Platform 2.5, 2.6

Identifiers

  • CVE-2026-0994
  • GHSA-7gcm-g887-7qv7
  • PYSEC-2026-1805

Timeline

  • 2026-01-09: other: Fix submitted via GitHub Pull Request 25239
  • 2026-01-23: disclosed: CVE published and fix approved
  • 2026-02-23: patched: Red Hat begins releasing security updates for RHEL 9.4

References

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