Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain read access to observability backend
-
ExploitInspect database operation spans
-
ExecutionRead db.user account names
-
ImpactMap service topology and naming patterns
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log data sanitization
|
| Exploitation Conditions | Requires a deployment running any of the affected packages below their fixed versions (@opentelemetry/instrumentation-cassandra-driver <0.66.0, -knex <0.65.0, -mongoose/-mysql/-mysql2 <0.67.0, -oracledb <0.46.0, -pg <0.73.0, -tedious <0.40.0) with database connections configured using a username, AND those traces being exported to an observability backend. The |
| Impact | This is a low-to-moderate priority information-disclosure issue (CWE-532) that scores CVSS 5.8 largely because of the Scope-change (S:C) and network (AV:N) metrics, not because of direct attacker-driven compromise. The provided vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N) reflects that the affected OpenTelemetry instrumentation packages automatically emit the database connection username as the |
| Exploit ScenarioDerived | An insider or attacker who has gained read access to the organization's observability backend (e.g., a tracing/APM SaaS, Jaeger, or Grafana Tempo) inspects spans emitted by a Node.js service and reads the |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Database account usernames are silently emitted into telemetry traces by the OpenTelemetry JavaScript Contrib database instrumentation packages, which attach the db.user span attribute to every instrumented database operation by default, independent of the enhancedDatabaseReporting opt-in setting. Every deployment running the affected packages below their fixed versions - @opentelemetry/instrumentation-cassandra-driver before 0.66.0, -knex before 0.65.0, -mongoose/-mysql/-mysql2 before 0.67.0, -oracledb before 0.46.0, -pg before 0.73.0, and -tedious before 0.40.0 - that exports traces to a shared observability backend therefore leaks its database usernames, and indirectly hints about service topology, role assignment, and environment naming, to any actor with read access to that telemetry pipeline. Scored CVSS 5.8 (CWE-532), this is a default-configuration information-disclosure weakness rather than a remotely triggerable attacker compromise: no public exploit code has been identified at time of analysis, there is no confirmed active exploitation, and the only credential material exposed is account names - not passwords, query contents, or result data.
RemediationAI
Upgrade to the fixed releases, which are vendor-released patches: @opentelemetry/instrumentation-cassandra-driver 0.66.0, @opentelemetry/instrumentation-knex 0.65.0, @opentelemetry/instrumentation-mongoose, -mysql and -mysql2 0.67.0, @opentelemetry/instrumentation-oracledb 0.46.0, @opentelemetry/instrumentation-pg 0.73.0, and @opentelemetry/instrumentation-tedious 0.40.0, per advisory GHSA-qqmp-wf37-98f9 and the upstream changes in PR #3585 (commits 27e172a9e0d549559056ccd58f27d13467454156 and 5b7dd0e102e940d653e04b08b5a1b721a8271037). These are minor-version bumps within the 0.x line, so verify your instrumentation dependency tree and any pinned transitive versions, since a lockfile pin can keep the vulnerable version in place. If immediate upgrade is not possible, strip the attribute before it leaves the process by registering a custom SpanProcessor in the OpenTelemetry Node SDK that deletes db.user from every ended span, and mirror that control at the collection layer with the OTel Collector attributes or redaction processor configured to remove db.user - the trade-off is that you permanently lose database-identity attribution that some teams use for per-account dashboards and incident triage, and the SDK-side filter must be deployed to every instrumented service to be effective, while the collector-side filter only protects data that actually flows through that collector. Because exposure requires backend read access, also tighten who can query the observability platform and lock down OTLP receiver endpoints (authentication, network policy, no public exposure), which reduces the blast radius but does not remove the leaked data that is already stored; the previously exported account names should be treated as disclosed and any dashboards, saved queries, or archives containing them purged or access-restricted. No vendor-released patch is required beyond the version upgrades listed, and no public exploit code has been identified for this default-configuration disclosure issue.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 16 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenTelemetry JS Contrib supplies auto-instrumentation libraries that monkey-patch popular JavaScript database drivers (mysql, mysql2, pg, mongoose, knex, cassandra-driver, oracledb, tedious) so that each instrumented operation produces a span enriched with OpenTelemetry semantic-convention attributes such as db.system, db.name, db.statement, and db.user. The root cause maps to CWE-532 (Insertion of Sensitive Information into Log/Telemetry Output): the instrumentation set db.user from the connection configuration unconditionally instead of gating it behind enhancedDatabaseReporting, the flag that normally governs capture of richer, potentially sensitive database detail such as query text and parameters. Because span attributes are transmitted by OTLP exporters to whatever observability platform is configured (Jaeger, Tempo, Datadog, Honeycomb, OTel Collector backends, etc.) and are typically retained far longer than application logs, the leaked account names persist in dashboards, traces, and archives. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N reflects that the confidentiality impact lands on the downstream telemetry system rather than the instrumented application itself (hence the Scope change), with low confidentiality impact and no integrity or availability effect; the referenced upstream fixes are PR #3585 and commits 27e172a9e0d549559056ccd58f27d13467454156 and 5b7dd0e102e940d653e04b08b5a1b721a8271037, and CPE data confirms all nine coord-inates (the opentelemetry-js-contrib umbrella project plus each individual @opentelemetry/instrumentation-* package) as the affected namespace.
Know when Opentelemetry gets its next vulnerability
- 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
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
Username is emitted automatically with no privileges or user interaction (PR:N/UI:N), crosses into a separate observability system (S:C), and only low-sensitivity account names are exposed (C:L, I/A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
OpenTelemetry JavaScript Contrib provides instrumentation libraries for collecting telemetry from JavaScript applications. Prior to versions 0.66.0 of @opentelemetry/instrumentation-cassandra-driver, 0.65.0 of @opentelemetry/instrumentation-knex, 0.67.0 of @opentelemetry/instrumentation-mongoose, @opentelemetry/instrumentation-mysql, and @opentelemetry/instrumentation-mysql2, 0.46.0 of @opentelemetry/instrumentation-oracledb, 0.73.0 of @opentelemetry/instrumentation-pg, and 0.40.0 of @opentelemetry/instrumentation-tedious, the packages add the database connection username to every instrumented database operation as the db.user span attribute. The attribute is emitted by default and is not controlled by enhancedDatabaseReporting or another opt-in setting. Configured observability backends therefore receive database account names that may expose service topology, role or environment information, and account naming patterns. This issue is fixed in versions 0.66.0, 0.65.0, 0.67.0, 0.46.0, 0.73.0, and 0.40.0 of the respective packages.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Opentelemetry
View allThe OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process and export telemetry data
OpenTelemetry-Go Contrib is a collection of third-party packages for OpenTelemetry-Go. Rated high severity (CVSS 7.5), t
TLS certificate verification in the OpenTelemetry Python OTLP/HTTP exporter is silently disabled when the OTEL_EXPORTER_
OpenTelemetry-Go Contrib is a collection of third-party packages for OpenTelemetry-Go. Rated high severity (CVSS 7.5), t
OpenTelemetry, also known as OTel for short, is a vendor-neutral open-source Observability framework for instrumenting,
A missing permission check in Jenkins OpenTelemetry Plugin 3.1543.v8446b_92b_cd64 and earlier allows attackers with Over
EUVD-2026-91788
GHSA-qqmp-wf37-98f9
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB