---
id: CVE-2026-0994
title: >-
  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 ac…
summary: >-
  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 ac…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-674
vendor: google
product: protobuf
affected:
  - protobuf <= 33.4
published: '2026-01-23'
updated: '2026-06-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-0994'
references:
  - url: 'https://github.com/protocolbuffers/protobuf/pull/25239'
    label: cve-coordination@google.com
  - url: 'https://access.redhat.com/errata/RHSA-2026:16174'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3059'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3094'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3095'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3097'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3218'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3219'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3220'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3461'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3462'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3958'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3959'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:8746'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:8747'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:8748'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/security/cve/CVE-2026-0994'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2432398'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-0994.json
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-0994'
  - url: 'https://github.com/protocolbuffers/protobuf/issues/25070'
  - url: >-
      https://github.com/protocolbuffers/protobuf/commit/5ebddcb1bcbe51d1fe323baa145e85f4f23128cf
  - url: >-
      https://github.com/protocolbuffers/protobuf/commit/d2b001626d137c62dfee6c88c87324102531868b
  - url: 'https://github.com/protocolbuffers/protobuf'
tags:
  - nvd
  - osv
  - pip
  - exploit-available
epss: 0.00722
epssPercentile: 0.52003
ingestedAt: '2026-06-30T17:40:12.454Z'
aliases:
  - GHSA-7gcm-g887-7qv7
  - PYSEC-2026-1805
ecosystem: pip
patched:
  - protobuf 6.33.5
  - protobuf 5.29.6
exploits:
  github: 1
  githubRepos:
    - 'https://github.com/Vardhan0257/upb-any-recursion-audit'
  checkedAt: '2026-09-26T09:05:36.518Z'
exploitAvailable: true
---

## Overview

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 that bypass the intended recursion limit, eventually exhausting Python’s recursion stack and causing a RecursionError.

## Affected

- `protobuf <= 33.4`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-0994)

Affected packages:

- `protobuf >= 6.30.0rc1, < 6.33.5`
- `protobuf < 5.29.6`

Patched in:

- `protobuf 6.33.5`
- `protobuf 5.29.6`

Source: https://osv.dev/vulnerability/GHSA-7gcm-g887-7qv7
