OpenTelemetry.Instrumentation.Http
writes the url.full
attribute/tag on spans (Activity
) when tracing is enabled for outgoing http requests and OpenTelemetry.Instrumentation.AspNetCore
writes the url.query
attribute/tag on spans (Activity
) when tracing is enabled for incoming http requests.
These attributes are defined by the Semantic Conventions for HTTP Spans.
Up until the 1.8.1
the values written by OpenTelemetry.Instrumentation.Http
& OpenTelemetry.Instrumentation.AspNetCore
will pass-through the raw query string as was sent or received (respectively). This may lead to sensitive information (e.g. EUII - End User Identifiable Information, credentials, etc.) being leaked into telemetry backends (depending on the application(s) being instrumented) which could cause privacy and/or security incidents.
Note: Older versions of OpenTelemetry.Instrumentation.Http
& OpenTelemetry.Instrumentation.AspNetCore
may use different tag names but have the same vulnerability.
The 1.8.1
versions of OpenTelemetry.Instrumentation.Http
& OpenTelemetry.Instrumentation.AspNetCore
will now redact by default all values detected on transmitted or received query strings.
Example transmitted or received query sting:
?key1=value1&key2=value2
Example of redacted value written on telemetry:
?key1=Redacted&key2=Redacted
{ "nvd_published_at": "2024-04-12T23:15:06Z", "cwe_ids": [ "CWE-201", "CWE-212" ], "severity": "MODERATE", "github_reviewed": true, "github_reviewed_at": "2024-04-12T22:54:09Z" }