CVE-2026-0994
Published: 23 January 2026
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
- 🇪🇺 ENISA EUVD: EUVD-2026-4322
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
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).
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Directly requires mechanisms to protect against resource-exhaustion DoS attacks such as the recursion-stack overflow triggered by crafted protobuf Any messages.
Mandates validation of input syntax and structure, which would detect and reject the excessively nested Any messages that bypass max_recursion_depth.
Requires timely application of the published patch (PR #25239) that adds proper recursion accounting inside Any handling.