Skip to content
Fencer Vulns
high 7.5

CVE-2026-26209 json

cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads

published 2026-03-23 7 mo ago modified 2026-09-10 1 mo ago also EUVD-2026-14478 , GHSA-3c37-wwvx-h642 , PYSEC-2026-2123

cvss
7.5
version 3.0, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 34%
public exploits
0
none known

Summary

cbor2 provides encoding and decoding for the Concise Binary Object Representation (CBOR) serialization format. Versions prior to 5.9.0 are vulnerable to a Denial of Service (DoS) attack caused by uncontrolled recursion when decoding deeply nested CBOR structures. This vulnerability affects both the pure Python implementation and the C extension `_cbor2`. The C extension relies on Python's internal recursion limits `Py_EnterRecursiveCall` rather than a data-driven depth limit, meaning it still raises `RecursionError` and crashes the worker process when the limit is hit. While the library handles moderate nesting levels, it lacks a hard depth limit. An attacker can supply a crafted CBOR payload containing approximately 100,000 nested arrays `0x81`. When `cbor2.loads()` attempts to parse this, it hits the Python interpreter's maximum recursion depth or exhausts the stack, causing the process to crash with a `RecursionError`. Because the library does not enforce its own limits, it allows an external attacker to exhaust the host application's stack resource. In many web application servers (e.g., Gunicorn, Uvicorn) or task queues (Celery), an unhandled `RecursionError` terminates the worker process immediately. By sending a stream of these small (<100KB) malicious packets, an attacker can repeatedly crash worker processes, resulting in a complete Denial of Service for the application. Version 5.9.0 patches the issue.

Patch / fix

  • pypi cbor2 5.9.0
  • agronholm cbor2 5.9.0
  • cbor2 Debian 14 5.9.0-1

debian advisories DEBIAN-CVE-2026-26209

  • python-cbor2 SLES for SAP applications 16.0, SLES 16.0 5.6.5-160000.4.1

suse advisories SUSE-SU-2026:21139-1

  • python-cbor2 openSUSE Leap 16.0 5.6.5-160000.4.1
  • python-cbor2 openSUSE Tumbleweed 5.9.0-1.1

opensuse advisories openSUSE-SU-2026:20468-1openSUSE-SU-2026:10425-1

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-26209 updated cvss 5.5

cbor2: cbor2: Denial of Service due to uncontrolled recursion via crafted CBOR payloads

  • Red Hat AI Inference Server rhaiis/vllm-cpu-rhel9, rhaiis/vllm-tpu-rhel9, rhaiis/vllm-neuron-rhel9, rhaiis-preview/vllm-cuda-rhel9 Red Hat Ansible Automation Platform 2 ansible-automation-platform-26/lightspeed-rhel9 Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-aws-cuda-rhel9, rhelai3/bootc-gcp-cuda-rhel9, rhelai3/bootc-azure-cuda-rhel9, rhelai3/bootc-azure-rocm-rhel9 Red Hat OpenShift AI (RHOAI) rhoai/odh-vllm-cpu-rhel9, rhoai/odh-vllm-cuda-rhel9, rhoai/odh-vllm-rocm-rhel9, rhoai/odh-vllm-gaudi-rhel9
    affected: no fix available “Fix deferred”
  • Red Hat AI Inference Server 3.2 rhaiis 1779223651, rhaiis 1779223654
    fixed: vendor fix RHSA-2026:19724
  • Red Hat AI Inference Server 3.3 rhaiis 1778244531, rhaiis 1778244546, rhaiis 1778274666
    fixed: vendor fix RHSA-2026:16030

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
Proof of concept is public
Automatable
yes
Technical impact
partial
Assessed
7 mo ago

Exploit prediction

0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-08).

Exploits and checks

  • github.com https://github.com/agronholm/cbor2/security/advisories/GHSA-3c37-wwvx-h642 referenced PoC, tagged "exploit" by a source, unverified

CVSS scores

assigned by version score vector
CNA 3.0 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
GitHub 3.0 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
OSV 3.0 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected packages

ecosystem package affected fixed in
pypi cbor2
<5.9.0
5.9.0

Affected products

  • agronholm cbor2

Classification

Weakness

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.