v1.1.0-beta.13
Pre-release
Pre-release
·
30 commits
to main
since this release
Security
-
OTLP header values are no longer written to the debug log. Two leaks are fixed:
- Debug logging logged the raw values of all
OTEL_EXPORTER_OTLP_HEADERSand the
signal-specificOTEL_EXPORTER_OTLP_{TRACES,METRICS,LOGS}_HEADERS. The message was
emitted above the per-header loop that redactsAuthorization, so the credential
reached the log regardless of that redaction. Thanks to @arpitjain099 (#100). OtlpHttpSpanExporterandOtlpHttpLogRecordExporterprinted every header value
exceptAuthorization, at construction and on each export request — including
headers configured in code, which never pass through an environment variable.
Who is affected: applications running with
OTEL_LOG_LEVEL=DEBUG(orOTelLogat
debug) and a credential in an OTLP header, from the environment or from exporter
config. Treat any debug logs collected from an affected build as containing that
credential and rotate it.Tracked as GHSA-4rh6-c2v5-374w (CWE-532). Affects
>= 1.0.0-alphaon this
line and>= 0.9.0on the stable channel; see the 0.9.8 entry. - Debug logging logged the raw values of all
Added
OTEL_DART_HEADER_LOG_ALLOWLIST, andOTel.initialize(otlpHeaderLogAllowlist:),
name the OTLP headers whose values may appear in the debug log (#96).
Names match exactly, case insensitively; the code parameter replaces
the environment variable rather than adding to it;authorizationand
proxy-authorizationare never logged even when listed. Thanks to @arpitjain099 (#101).
Changed
- Debug logs now print
name: [REDACTED]for any header value not on the allowlist,
replacingAuthorization: [REDACTED - length: N]— the length is dropped on purpose,
since it narrows the search space for the token. Header names and the header count are
still logged. A header value you relied on seeing at debug level now has to be listed
inOTEL_DART_HEADER_LOG_ALLOWLIST.