Cloudanix VulnDB

CVE-2026-114603

Medium · 5.3

CVSS

5.3

EPSS

0.5%

Published

Oct 22, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in a popular Python tracing library lets anyone slow down or briefly disrupt a service by sending one specially formatted request, without needing login or special access.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Unbounded optional-whitespace regex in TraceState.from_header (opentelemetry/trace/span.py) reached via TraceContextTextMapPropagator.extract performs catastrophic backtracking on malformed W3C tracestate headers containing long runs of spaces or tabs without a comma, consuming excessive CPU before the member-count limit applies.

Why it matters to the business

A single unauthenticated request can occupy a synchronous worker thread or delay unrelated work on an asynchronous event loop, degrading service availability and responsiveness until the request completes or is terminated.

How an attack unfolds

An attacker crafts an HTTP request containing a W3C tracestate header with a long sequence of whitespace characters and no terminating comma, sends it to any endpoint instrumented with the default OpenTelemetry propagator, and triggers quadratic CPU consumption during header parsing.

How to fix it

Upgrade opentelemetry-api to version 1.45.1 or later. If immediate upgrade is not possible, implement request-size or header-size limits at the web server, reverse proxy, or gateway layer before the Python application processes the request.

How to confirm the fix worked

Confirm opentelemetry-api package version is 1.45.1 or newer; replay a test request containing a 100k+ character whitespace-only tracestate header and verify CPU usage remains bounded and request completes promptly.

Typical attack path

  1. Craft HTTP request with oversized tracestate header consisting of repeated spaces or tabs without commas
  2. Transmit request to any service endpoint that extracts W3C Trace Context headers
  3. Server invokes TraceContextTextMapPropagator.extract which calls TraceState.from_header
  4. Regex engine performs quadratic backtracking consuming CPU until member limit check or timeout

How to detect it

Inspect HTTP access logs and application request logs for unusually large tracestate header values; correlate with process CPU spikes or long-running request traces in observability data; search for repeated requests containing long runs of whitespace in the tracestate header.

  • tracestate header containing 10000+ consecutive space or tab characters
  • TraceState.from_header
  • opentelemetry/trace/span.py

What your security team should do

  • Upgrade all OpenTelemetry Python deployments to opentelemetry-api >= 1.45.1 within the next maintenance window
  • Add HTTP header size limits or request timeouts at the load balancer or WSGI server level as a compensating control
  • Monitor application CPU and request latency for sudden spikes correlated with inbound traceparent/tracestate headers

The record

OpenTelemetry Python provides the Python API and SDK for OpenTelemetry. Prior to 1.45.1, the opentelemetry-api function TraceState.from_header in opentelemetry/trace/span.py, reached through TraceContextTextMapPropagator.extract, parses inbound W3C tracestate headers with an unbounded optional-whitespace regular expression. A malformed header containing a long run of spaces or tabs without a following comma causes quadratic backtracking before the member-count limit is applied. Services using the default W3C Trace Context propagator can therefore spend excessive CPU time on one unauthenticated request when the HTTP server, parser, gateway, or custom carrier accepts a sufficiently large header. The processing can occupy a synchronous worker or delay unrelated requests on the same asynchronous event loop. The impact is limited to availability and does not expose or modify telemetry data or allow code execution. This issue is fixed in version 1.45.1.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities