Multiple @opentelemetry/instrumentation-* packages expose database username via unconditional db.user span attribute
Impact
Multiple @opentelemetry/instrumentation-* packages recorded the database connection username as the db.user
span attribute on every instrumented database operation. This attribute was emitted unconditionally — it was
not gated by enhancedDatabaseReporting or any other opt-in flag, and it was the default behaviour for
all users of the affected packages until the patched releases shipped on 2026-07-23.
The attribute is forwarded to every configured observability backend (Jaeger, Zipkin, Datadog, OTLP collectors, etc.). Depending on the database account naming convention in use, the exported value may reveal:
- Internal service account names that disclose architecture topology.
- Role-encoded usernames (e.g.
admin_readwrite,app_readonly_prod) useful for privilege inference. - Database account naming patterns useful for credential enumeration.
Affected packages (all are vulnerable from the first published version through the version listed below):
| Package | Vulnerable range | Patched version |
|---|---|---|
@opentelemetry/instrumentation-cassandra-driver |
< 0.66.0 |
0.66.0 |
@opentelemetry/instrumentation-knex |
< 0.65.0 |
0.65.0 |
@opentelemetry/instrumentation-mongoose |
< 0.67.0 |
0.67.0 |
@opentelemetry/instrumentation-mysql |
< 0.67.0 |
0.67.0 |
@opentelemetry/instrumentation-mysql2 |
< 0.67.0 |
0.67.0 |
@opentelemetry/instrumentation-oracledb |
< 0.46.0 |
0.46.0 |
@opentelemetry/instrumentation-pg |
< 0.73.0 |
0.73.0 |
@opentelemetry/instrumentation-tedious |
< 0.40.0 |
0.40.0 |
Patches
Fixed in the coordinated release on 2026-07-23 via feat!: only emit stable http, network and database attributes (#3585).
Upgrade to the patched version listed in the table above for each instrumentation package in use.
Workarounds
No configuration-level workaround exists in the affected versions: the db.user attribute cannot be
suppressed without patching. As a partial mitigation, a custom SpanProcessor can be used to strip db.user from spans before they leave the process:
// Example: drop db.user in a custom SpanProcessor
class StripDbUserProcessor implements SpanProcessor {
onStart(span: Span) {
span.setAttribute('db.user', null);
}
onEnd() {}
shutdown() { return Promise.resolve(); }
forceFlush() { return Promise.resolve(); }
}
Users who control the downstream collector can also filter the attribute at the collector pipeline level.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | @opentelemetry/instrumentation-cassandra-driver | < 0.66.0 | 0.66.0 |
| Paczka npm | @opentelemetry/instrumentation-knex | < 0.65.0 | 0.65.0 |
| Paczka npm | @opentelemetry/instrumentation-mongoose | < 0.67.0 | 0.67.0 |
| Paczka npm | @opentelemetry/instrumentation-mysql | < 0.67.0 | 0.67.0 |
| Paczka npm | @opentelemetry/instrumentation-mysql2 | < 0.67.0 | 0.67.0 |
| Paczka npm | @opentelemetry/instrumentation-oracledb | < 0.46.0 | 0.46.0 |
| Paczka npm | @opentelemetry/instrumentation-pg | < 0.73.0 | 0.73.0 |
| Paczka npm | @opentelemetry/instrumentation-tedious | < 0.40.0 | 0.40.0 |
Odnośniki
- https://github.com/open-telemetry/opentelemetry-js-contrib/security/advisories/GHSA-qqmp-wf37-98f9
- https://nvd.nist.gov/vuln/detail/CVE-2026-104872
- https://github.com/open-telemetry/opentelemetry-js-contrib/pull/3585
- https://github.com/open-telemetry/opentelemetry-js-contrib/commit/27e172a9e0d549559056ccd58f27d13467454156
- https://github.com/open-telemetry/opentelemetry-js-contrib/commit/5b7dd0e102e940d653e04b08b5a1b721a8271037
- https://github.com/open-telemetry/opentelemetry-js-contrib
- Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N- Słabość (CWE)
CWE-532- Platforma
- npm
- Paczka
@opentelemetry/instrumentation-cassandra-driver, @opentelemetry/instrumentation-knex, @opentelemetry/instrumentation-mongoose- Ujawniono
- 05.10.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-qqmp-wf37-98f9 - CC BY 4.0
Historia podatności: @opentelemetry/instrumentation-cassandra-driver
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
To jedyna znana podatność tej paczki.
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.