Skip to main content

OTel OpenTracing Bridge CVE-2026-45404

| EUVDEUVD-2026-65155 MEDIUM
Race Condition (CWE-362)
2026-08-20 https://github.com/open-telemetry/opentelemetry-go GHSA-42cj-99w8-cp2p
5.9
CVSS 4.0 · Vendor: https://github.com/open-telemetry/opentelemetry-go
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send concurrent requests to bridge-instrumented service
  2. Delivery
    Trigger shared span baggage write via SetBaggageItem
  3. Exploit
    Trigger concurrent correlation read via MapFromContext
  4. Execution
    Go runtime detects unsynchronized map access
  5. Impact
    Fatal panic crashes process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three specific, concurrent conditions: (1) the application must import and use go.opentelemetry.io/otel/bridge/opentracing - core OpenTelemetry SDK users who have not imported this bridge package are not affected; (2) the application must have installed correlation hooks via tracer.NewHookedContext(ctx), which wires up the correlationGetHook read path; and (3) two goroutines must concurrently access the same bridgeSpan instance - one calling Span.SetBaggageItem(...) (the write path) and another calling otelcorrelation.MapFromContext(ctx) (the read path). Exploitation is limited by the non-default nature of the bridge package (only used during OpenTracing-to-OTel migration), the requirement for correlation hooks to be explicitly installed, and the need for concurrent goroutine access to a shared span, which depends on application architecture. Authentication level is not a limiting factor in the traditional sense - any code path reaching the shared span triggers the race.

Impact

No CVSS score or EPSS probability was provided for this CVE, which limits quantitative risk comparison. The available qualitative signals point uniformly toward lower real-world priority. The vulnerability requires a specific and non-default software stack: the application must import the OpenTracing bridge package, install correlation hooks via tracer.NewHookedContext, and have concurrent goroutines operating on the same bridgeSpan instance. This combination is uncommon even among OpenTelemetry adopters. Impact, when conditions are met, is total: Go's runtime panic kills the entire process, making availability loss complete and immediate with no graceful degradation. However, a deliberate external attacker triggering this would need the target application to expose concurrent request paths that share a single span - a coincidence of architecture and workload rather than a direct attack primitive. A proof-of-concept exists (noted in the advisory), confirming the race is reproducible, but no public exploit kit or CISA KEV listing indicates broader weaponization. Even a small operations team running a bridge-instrumented service should treat this as a routine patch-cycle fix rather than an emergency, given that upgrading to v1.45.0 is straightforward and no exploitation evidence exists at time of analysis.

Exploit ScenarioDerived

An attacker sends a high volume of concurrent HTTP requests to a Go service instrumented with the OpenTelemetry OpenTracing bridge and correlation hooks, where the service's request handler shares a single bridgeSpan across multiple goroutines - for example, in a middleware that propagates baggage context while other goroutines call SetBaggageItem on the same span. The Go runtime detects the concurrent map access and terminates the process with a fatal panic, crashing the service. A proof-of-concept demonstrating this exact pattern has been published as part of the advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 20, 2026

Process-crashing race condition in the OpenTelemetry-Go OpenTracing bridge (go.opentelemetry.io/otel/bridge/opentracing) allows denial of service when concurrent goroutines access the same bridgeSpan - one writing baggage via SetBaggageItem and another reading it via correlation.MapFromContext. Because Go's runtime detects unsynchronized map access and terminates the process with a fatal panic, any application using the bridge with correlation hooks and concurrent span access is vulnerable to abrupt process termination. A proof-of-concept is publicly available; no confirmed active exploitation (KEV) has been reported.

RemediationAI

Upgrade go.opentelemetry.io/otel/bridge/opentracing to v1.45.0, released 2026-08-03, which resolves the race condition via PR #8693 (https://github.com/open-telemetry/opentelemetry-go/pull/8693) and commit 93a693edeed0e07ce5ebd1dfe67af42d1e2055d8. The release is available at https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.45.0. Run go get go.opentelemetry.io/otel/bridge/opentracing@v1.45.0 && go mod tidy to update. If upgrading immediately is not possible, the most effective compensating control is to avoid installing correlation hooks via tracer.NewHookedContext in code paths where the same span may be accessed by multiple concurrent goroutines; this eliminates the read-path trigger (correlationGetHook). Alternatively, architectural isolation - ensuring each goroutine creates and owns its own span rather than sharing one - removes the concurrency condition entirely. Both workarounds carry the trade-off of reduced observability or increased instrumentation overhead and should be treated as temporary.

Affected VersionsENISA

opentelemetry-go 0.11.0, < 1.45.0

Affected Packages

go go.opentelemetry.io/otel/bridge/opentracing fix: 1.45.0
euvd opentelemetry_go_0_11_0 fix: 1.45.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected package go.opentelemetry.io/otel/bridge/opentracing (CPE: pkg:go/go.opentelemetry.io_otel_bridge_opentracing, versions >= 0.11.0, < 1.45.0) is a compatibility shim that allows existing OpenTracing-instrumented Go applications to emit telemetry through the OpenTelemetry SDK without a full migration. The root cause is CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization): the extraBaggageItems map[string]string field added to bridgeSpan at bridge/opentracing/bridge.go:80-85 has no associated mutex or sync primitive. The write path (SetBaggageItem → updateOtelContext, lines 219-234) lazily initializes and writes this map without locking. The read path (correlationGetHook, lines 359-377) checks len(items) and iterates for k, v := range items also without locking. The Go specification explicitly states that maps are not safe for concurrent read/write; the runtime detects violations and terminates the process with fatal error: concurrent map read and map write or fatal error: concurrent map iteration and map write. The hook invocation path through correlation.MapFromContext (api/correlation/context.go:160-165) provides the concurrent read trigger.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/open-telemetry/opentelemetry-go) PRIMARY 5.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Network-triggerable via concurrent requests (AV:N), but requires specific bridge+hooks configuration making exploitation high complexity (AC:H); no auth needed; crash yields full availability loss (A:H).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 6.2 MEDIUM
AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 6.2 MEDIUM

Primary rating from Vendor (https://github.com/open-telemetry/opentelemetry-go).

CVSS VectorVendor: https://github.com/open-telemetry/opentelemetry-go

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
CVSS changed
Aug 24, 2026 - 22:22 NVD
5.9 (MEDIUM)

DescriptionCVE.org

Summary

go.opentelemetry.io/otel/bridge/opentracing introduced an unsynchronized extraBaggageItems map on bridgeSpan. One goroutine can write this map through Span.SetBaggageItem while another goroutine reads and iterates it during correlation baggage propagation, which can trigger Go's fatal concurrent map access panic and crash the process. The finding is low severity because exploitation requires a specific OpenTracing bridge configuration and concurrent use of the same span.

Introduced in commit: 8cddf30

Details

bridge/opentracing/bridge.go:80-85 adds extraBaggageItems map[string]string to bridgeSpan without a mutex or other synchronization primitive. bridge/opentracing/bridge.go:219-234 shows SetBaggageItem calling updateOtelContext, which lazily creates the map and writes s.extraBaggageItems[restrictedKey] = value without locking. bridge/opentracing/bridge.go:359-377 shows correlationGetHook reading bSpan.extraBaggageItems, checking len(items), and iterating for k, v := range items without locking. The finding evidence also identifies api/correlation/context.go:160-165 as the path where correlation.MapFromContext invokes the get hook, allowing a read path to run concurrently with baggage writes.

Because Go maps are not safe for concurrent read/write access, concurrent SetBaggageItem and correlation.MapFromContext calls on the same hooked bridgeSpan can terminate the process with a runtime error such as fatal error: concurrent map read and map write or fatal error: concurrent map iteration and map write.

PoC

validation-artifact.zip

The validation artifact contains a PoC at validation-artifact.tar:validation_poc_concurrent_map.go and supporting notes at validation-artifact.tar:validation_poc_README.txt.

Use a checkout of pellared/opentelemetry-go at commit 8cddf30 with Go module downloads enabled. The local validation environment could not complete the run because GOPROXY=off blocked dependency resolution; that blocked output is saved in validation-artifact.tar:validation_poc_run.log.

Commands:

sh
cd /path/to/opentelemetry-go
git checkout 8cddf30
tar -xOf /path/to/finding-directory/validation-artifact.tar validation_poc_concurrent_map.go > ./validation_poc_concurrent_map.go
GOPROXY=https://proxy.golang.org,direct go run ./validation_poc_concurrent_map.go

The PoC starts a BridgeTracer, creates a span, installs correlation hooks with tracer.NewHookedContext(ctx), initializes baggage once, then runs one goroutine repeatedly calling span.SetBaggageItem(...) while another repeatedly calls otelcorrelation.MapFromContext(ctx). A vulnerable build is expected to terminate with a Go runtime concurrent map access error, for example:

text
fatal error: concurrent map read and map write

or:

text
fatal error: concurrent map iteration and map write

Impact

This is a race condition / improper synchronization vulnerability in a shared Go map. Applications using the OpenTelemetry OpenTracing bridge with correlation hooks can crash if the same bridgeSpan is accessed concurrently, with one execution path setting baggage and another propagating correlation baggage. The practical impact is denial of service for the affected application process; exposure depends on whether application request handling or internal concurrency can trigger those operations on the same span.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche compatibility shim used only during OpenTracing-to-OTel migrations
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.4 Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected
SUSE Linux Enterprise Module for Web and Scripting 15 SP7 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy