Google Protocol Buffers JSON Parsing Denial-of-Service Vulnerability

CVE-2026-0994 Denial-of-Service JSON Parsing
Overview
CVE-2026-0994 is a high-severity vulnerability in Google Protocol Buffers (protobuf) affecting the Python implementation. The flaw allows an attacker to crash an application by sending a specially crafted JSON payload. By abusing deeply nested protobuf Any message types, the attacker can bypass built-in recursion limits, leading to uncontrolled recursion and service termination.
Technical Specifications
| Attribute | Details |
|---|---|
| CVE ID | CVE-2026-0994 |
| Vulnerability Type | Denial-of-Service (DoS) via Recursion Bypass |
| CVSS Score | 8.2 (High) |
| Attack Vector | Network |
| Authentication | None |
| Complexity | Low |
| User Interaction | Not Required |
| Affected Component | google.protobuf.json_format.ParseDict() |
Affected Products
- Python protobuf library (google-protobuf package)
- Any application using Python protobuf for JSON parsing
- Status: Active / Patch Available
Technical Details
The vulnerability exists in google.protobuf.json_format.ParseDict(). While the function enforces a recursion depth limit, nested google.protobuf.Any messages are processed by _ConvertAnyMessage(), which does not increment or decrement the recursion counter. This results in:
- Infinite or very deep recursion bypassing the limit
- Python stack exhaustion
- Application crash (RecursionError)
Attack Scenario
- Attacker identifies an API or service that parses untrusted JSON input using Python protobuf
- Attacker crafts a JSON payload containing deeply nested Any protobuf objects
- The recursion limit is bypassed through the helper function
- The service crashes due to stack overflow (RecursionError)
- Repeated requests can keep the service offline (persistent DoS)
Impact Assessment
- Service or API crashes
- Application unavailability
- Potential repeated outages
- Can be exploited remotely and unauthenticated
- No direct data theft impact
- Indirect exposure through service disruption
- No direct data corruption
- Indirect impacts through denial of service
Mitigation Strategies
Immediate Actions
- Update to patched versions of the Python protobuf library immediately
- Review applications using Python protobuf for JSON parsing
- Monitor for exploitation attempts in application logs
Short-term Measures
- Implement input size limits for JSON payloads
- Add JSON depth validation before parsing
- Use defensive error handling around protobuf parsing calls
- Consider temporarily disabling untrusted JSON parsing if possible
Monitoring & Detection
- Monitor vendor advisories and Linux distribution security updates
- Track RecursionError exceptions in application logs
- Monitor for repeated failed JSON parsing attempts
- Alert on unusual API response times or crashes