Vulnerability · CVE-2026-114603
OpenTelemetry Python: Unbounded tracestate parsing in opentelemetry-api
Published Oct 22, 2026 · catalog updated Oct 29, 2026 · Red Hat Red Hat Enterprise Linux
Last checked Nov 7, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-114603. EPSS is 0.49%. Act only if a listed version of Red Hat Red Hat Enterprise Linux is installed.
Gaps on this record
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
Same product and reporting
- CVE-2026-114366 · Low
- CVE-2026-77299 · High
- CVE-2026-85068 · Low
- CVE-2026-92698 · High
- CVE-2026-92697 · High
- Severity
- Medium5.3
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.49%
- Remediation
- Version ranges on file
- Affected products
- PyPI opentelemetry-api · pip opentelemetry-api · pypi opentelemetry-api
## Summary splits the inbound W3C header with a regular expression that starts with an unbounded optional-whitespace run, and no length limit is applied first. A run of spaces or tabs that is not followed by a comma costs O(N²) CPU. A single unauthenticated request with a ~100 KB keeps the handling worker busy for ~6 s (spaces) to ~12 s (tabs); under an asyncio server it blocks every other connection for that time. ## Affected component / version - Package: (pip) — ( ), reached from ( ). - Confirmed in (5e8083e8) and in the v1.44.0 and v1.45.0 tags; the same pattern is present back to v1.0.0 (introduced by #1599, March 2021). Not exhaustively verified against every release in between. - Reachable with the default propagators ( defaults to ) from any server instrumentation that calls , for example . ## Details 1. The header reaches the parser without any length check: 2. The split pattern and the parser: tries the pattern at every offset. At each offset inside a whitespace run, consumes the rest of the run, finds no , backtracks and fails, then the engine moves one character forward and repeats. N characters × up to N steps each = O(N²). The 32-member limit never gets a chance to run because has to finish first. 3. The sibling propagator already has the missing guard: A 16 KiB header costs ≈ 0.25 s and an 8 KiB header ≈ 0.07 s. Measured cost of on one core (valid , ): the time quadruples each time N doubles (see the proof of concept). Roughly 0.06 s at 10,000 characters, 1 s at 40,000, 4 s at 80,000, 9 s at 100,000 (tabs are about 1.6× slower). Whether a server lets such a header through (header-size limits, tested): gunicorn rejects ≥ 8190 bytes (response code 431); rejects above 16 KiB (400); waitress accepts up to 256 KiB (200 KB accepted, 300 KB rejected); — the default parser with — accepted 300 KB, 1 MB, 5 MB and 20 MB headers. ## Proof of concept ### A. Show the quadratic cost (no server needed) 1. Install the API: (any version from 1.0 up to the current main
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- PyPI opentelemetry-api0 → 1.45.1
- pip opentelemetry-api<= 1.45.0
- pypi opentelemetry-apiversion unspecified
How to fix CVE-2026-114603
Upgrade
CVE-2026-114603 lists a fix boundary at 1.45.1. Compare the installed build with that boundary before you change production.
Version check
Affected <= 1.45.0
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-114603. EPSS is 0.49%. Act only if a listed version of Red Hat Red Hat Enterprise Linux is installed.
Which versions are affected?
Compare what you have installed with 0 → 1.45.1, <= 1.45.0. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-1333: Inefficient Regular Expression Complexity; CWE-400: Uncontrolled Resource Consumption. EPSS 0.49%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 22, 2026 · Red Hat Security Data
Detected
opentelemetry-api: opentelemetry-api: Denial of Service via regular expression backtracking in header parsing
Oct 22, 2026 · GitHub Advisory Database
Updated
## Summary splits the inbound W3C header with a regular expression that starts with an unbounded optional-whitespace run, and no length limit is applied first. A run of spaces or tabs that is not followed by a comma costs O(N²) CPU. A single unauthenticated request with a ~100 KB keeps the handling worker busy for ~6 s (spaces) to ~12 s (tabs); under an asyncio server it blocks every other connect
Oct 22, 2026 · PyPA Advisory Database
Fix available
opentelemetry-api fixed in 1.45.1
Oct 22, 2026 · PyPA Advisory Database
Fix available
opentelemetry-api fixed in 1.45.1
Oct 22, 2026 · PyPA Advisory Database
Updated
## Summary splits the inbound W3C header with a regular expression that starts with an unbounded optional-whitespace run, and no length limit is applied first. A run of spaces or tabs that is not followed by a comma costs O(N²) CPU. A single unauthenticated request with a ~100 KB keeps the handling worker busy for ~6 s (spaces) to ~12 s (tabs); under an asyncio server it blocks every other connect
Oct 29, 2026 · NIST NVD
Updated
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 follo
Sources
- CVE.orgVulnerability recordCVE-2026-114603
Official CVE identifier
cve.org - FIRST EPSSExploitation probabilityCVE-2026-114603
30-day exploitation probability 0.49%
first.org - GitHub Advisory DatabasePackage advisoryGHSA-xcq7-p3pf-p88h
OpenTelemetry Python: Unbounded tracestate parsing in opentelemetry-api
github.com - GitLab Advisory DatabasePackage advisoryCVE-2026-114603
TraceState.from_header splits the inbound W3C tracestate header with a regular expression that starts with an unbounded optional-whitespace run, and no length limit is applied first. A run of spaces or tabs that is not followed by a comma costs O(N²) CPU. A single unauthenticated request with a ~100 KB tracestate keeps the handling worker busy for ~6 s (spaces) to ~12 s (tabs); under an asyncio se
advisories.gitlab.com - NIST NVDVulnerability recordCVE-2026-114603
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 unbo
nvd.nist.gov - PyPA Advisory DatabasePackage advisoryGHSA-xcq7-p3pf-p88h
OpenTelemetry Python: Unbounded tracestate parsing in opentelemetry-api
osv.dev - Red Hat Security DataVendor advisoryCVE-2026-114603
opentelemetry-api: opentelemetry-api: Denial of Service via regular expression backtracking in header parsing
access.redhat.com
References
Freshness
Last verified in this catalog Nov 7, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- FIRST EPSSNov 7, 2026
- NIST NVDOct 29, 2026
- GitHub Advisory DatabaseOct 23, 2026
- GitLab Advisory DatabaseOct 23, 2026
- Red Hat Security DataOct 23, 2026
- PyPA Advisory DatabaseOct 23, 2026
- CVE.orgOct 23, 2026