Cyber Resilience

CVE-2026-0994

HighDDoSUpdated

Published: 23 January 2026

Published
23 January 2026
Modified
30 June 2026
KEV Added
Patch
CVSS Score v4 8.2 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0035 27.0th percentile
Risk Priority 55 floored blend · peak EPSS

Summary

CVE-2026-0994 is a high-severity Uncontrolled Recursion (CWE-674) vulnerability in Google Protobuf. Its CVSS base score is 8.2 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Application or System Exploitation (T1499.004); ranked at the 27.0th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified are NIST 800-53 SC-5 (Denial-of-service Protection) and SI-10 (Information Input Validation).

Deeper analysis

CVE-2026-0994 is a denial-of-service (DoS) vulnerability in the google.protobuf.json_format.ParseDict() function within Python's Protocol Buffers library. The flaw allows the max_recursion_depth limit to be bypassed when parsing deeply nested google.protobuf.Any messages, due to missing recursion depth accounting in the internal Any-handling logic. An attacker can supply specially crafted nested Any structures that exhaust Python's recursion stack, resulting in a RecursionError.

The vulnerability carries a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), making it exploitable remotely with low attack complexity, no privileges, and no user interaction required. Unauthenticated attackers who can supply malicious input to an affected application using this parsing function can trigger the recursion exhaustion, causing application crashes or service denial with high availability impact but no confidentiality or integrity compromise. It is associated with CWE-674 (Uncontrolled Recursion).

Mitigation is addressed in a patch via GitHub pull request #25239 in the protocolbuffers/protobuf repository: https://github.com/protocolbuffers/protobuf/pull/25239.

EU & UK References

Vulnerability details

A denial-of-service (DoS) vulnerability exists in google.protobuf.json_format.ParseDict() in Python, where the max_recursion_depth limit can be bypassed when parsing nested google.protobuf.Any messages. Due to missing recursion depth accounting inside the internal Any-handling logic, an attacker can supply deeply nested Any structures…

more

that bypass the intended recursion limit, eventually exhausting Python’s recursion stack and causing a RecursionError.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise TechniquesAI

T1499.004 Application or System Exploitation Impact
Adversaries may exploit software vulnerabilities that can cause an application or system to crash and deny availability to users.
Why these techniques?

Remote exploitation of uncontrolled recursion in protobuf parsing directly enables application crash and denial of service via T1499.004 (Application or System Exploitation).

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

CVEs Like This One

CVE-2026-0109Same vendor: Google
CVE-2025-0612Same vendor: Google
CVE-2024-40675Same vendor: Google
CVE-2026-34211Shared CWE-674
CVE-2026-41636Shared CWE-674
CVE-2026-33498Shared CWE-674
CVE-2026-32141Shared CWE-674
CVE-2026-40879Shared CWE-674
CVE-2026-32933Shared CWE-674
CVE-2024-57699Shared CWE-674

Affected Assets

google
protobuf
≤ 33.4

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

prevent

Directly requires mechanisms to protect against resource-exhaustion DoS attacks such as the recursion-stack overflow triggered by crafted protobuf Any messages.

prevent

Mandates validation of input syntax and structure, which would detect and reject the excessively nested Any messages that bypass max_recursion_depth.

prevent

Requires timely application of the published patch (PR #25239) that adds proper recursion accounting inside Any handling.

References