{"id":"CVE-2026-81870","kind":"vulnerability","aliases":["CVE-2026-81870","GHSA-8wmf-6v46-5gfg","GO-2026-6505"],"related":[],"title":"OpenTelemetry-Go: Exporter config logging may leak endpoint URLs in info logs in go.opentelemetry.io/otel/exporters/otlp/otlptrace","description":"OpenTelemetry-Go is the Go implementation of OpenTelemetry. From version 1.5.0 to 1.44.0, sdk/trace.NewTracerProvider emits a TracerProvider created internal Info-level diagnostic event whose MarshalLog implementations recursively include span processor, exporter, and client configuration. Applications that call otel.SetLogger to enable OpenTelemetry internal Info logging can therefore record OTLP gRPC and HTTP collector endpoints, the OTLP HTTP Insecure flag, and complete Zipkin collector URLs. A person or system with access to those logs can learn internal collector topology and can recover credentials or tokens embedded in Zipkin URL user information or query strings. The default OpenTelemetry logger does not emit the event, and this path does not log OTLP authentication headers, TLS key material, or span payloads. This issue is fixed in version 1.45.0.","summary":"OpenTelemetry-Go's tracer provider writes an Info-level diagnostic log that includes exporter endpoint URLs and Zipkin collector URLs. Anyone who can read those logs can learn internal collector addresses and any credentials embedded in Zipkin URLs.","severity":"low","cvss":2.0,"epss":0.00195,"exploited":false,"exploited_at":null,"products":[{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace","fixed":["1.45.0"],"affected":">= 1.5.0, < 1.45.0","ecosystem":"go"},{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc","fixed":["1.45.0"],"affected":">= 1.5.0, < 1.45.0","ecosystem":"go"},{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp","fixed":["1.45.0"],"affected":">= 1.5.0, < 1.45.0","ecosystem":"go"},{"name":"go.opentelemetry.io/otel/exporters/zipkin","fixed":["1.45.0"],"affected":">= 1.5.0, < 1.45.0","ecosystem":"go"},{"name":"go.opentelemetry.io/otel/sdk","fixed":["1.45.0"],"affected":">= 1.5.0, < 1.45.0","ecosystem":"go"}],"ecosystems":["go"],"tags":["go","opentelemetry","otlp","package","zipkin"],"not_affected_if":["default-logger","no-otel-setlogger","versions-1.45.0-or-later"],"how_to_check":"Check whether the application calls otel.SetLogger; only then is the Info-level event emitted (the default logger does not emit it).\nCheck go.mod for go.opentelemetry.io/otel/sdk or exporters/otlp/otlptrace versions below 1.45.0.\nIf logs are collected, search them for OTLP collector endpoints or Zipkin URLs containing user info or query strings.","fix":"Upgrade go.opentelemetry.io/otel/sdk, the otlptrace, otlptracegrpc, otlptracehttp and zipkin exporters to 1.45.0 or later.\nIf Zipkin URLs carry credentials, rotate them and move them out of the URL.","status":"open","published_at":"2026-09-16T20:17:32+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T21:49:25+00:00","updated_at":"2026-10-23T21:49:25+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T21:49:25Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade go.opentelemetry.io/otel/sdk, the otlptrace, otlptracegrpc, otlptracehttp and zipkin exporters to 1.45.0 or later.\nIf Zipkin URLs carry credentials, rotate them and move them out of the URL.","reach":"local","impact":"low","summary":"OpenTelemetry-Go's tracer provider writes an Info-level diagnostic log that includes exporter endpoint URLs and Zipkin collector URLs. Anyone who can read those logs can learn internal collector addresses and any credentials embedded in Zipkin URLs.","category":"package","who_cares":["go","opentelemetry","otlp","zipkin"],"confidence":0.8,"needs_auth":"no","worst_case":"Collector endpoints and embedded Zipkin credentials appear in readable logs.","analyst_note":"","how_to_check":"Check whether the application calls otel.SetLogger; only then is the Info-level event emitted (the default logger does not emit it).\nCheck go.mod for go.opentelemetry.io/otel/sdk or exporters/otlp/otlptrace versions below 1.45.0.\nIf logs are collected, search them for OTLP collector endpoints or Zipkin URLs containing user info or query strings.","needs_analyst":false,"not_affected_if":["default-logger","versions-1.45.0-or-later","no-otel-setlogger"],"user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000604,"input_tokens":3407,"output_tokens":527,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-2026':19A,27A,30A '-6505':28A '-81870':20A,31A '/otel/exporters/otlp/otlptrace':17A,34A '/otel/exporters/otlp/otlptrace/otlptracegrpc':37A '/otel/exporters/otlp/otlptrace/otlptracehttp':40A '/otel/exporters/zipkin':43A '/otel/sdk':46A '1.44.0':105C '1.45.0':216C '1.5.0':103C '5gfg':25A '6v46':24A '8wmf':23A 'access':162C 'address':84B 'anyon':74B 'applic':128C 'authent':202C 'call':130C 'client':126C 'collector':72B,83B,145C,155C,169C 'complet':153C 'config':5A 'configur':127C 'creat':110C 'credenti':87B,174C 'cve':18A,29A 'default':187C 'diagnost':63B,115C 'embed':88B,177C 'emit':107C,192C 'enabl':133C 'endpoint':9A,68B,146C 'event':116C,194C 'export':4A,67B,124C 'fix':213C 'flag':151C 'ghsa':22A 'ghsa-8wmf-6v46-5gfg':21A 'go':3A,26A,47B,54B,94C,97C 'go.opentelemetry.io':16A,33A,36A,39A,42A,45A 'go.opentelemetry.io/otel/exporters/otlp/otlptrace':15A,32A 'go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc':35A 'go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp':38A 'go.opentelemetry.io/otel/exporters/zipkin':41A 'go.opentelemetry.io/otel/sdk':44A 'grpc':142C 'header':203C 'http':144C,149C 'implement':98C,119C 'includ':66B,121C 'info':12A,61B,113C,136C 'info-level':60B,112C 'inform':182C 'insecur':150C 'intern':82B,111C,135C,168C 'issu':211C 'key':205C 'leak':8A 'learn':81B,167C 'level':62B,114C 'log':6A,13A,64B,79B,137C,165C,200C 'logger':189C 'marshallog':118C 'materi':206C 'may':7A 'opentelemetri':2A,48B,53B,93C,100C,134C,188C 'opentelemetry-go':1A,52B,92C 'otel.setlogger':131C 'otlp':49B,141C,148C,201C 'packag':50B 'path':197C 'payload':209C 'person':158C 'processor':123C 'provid':57B 'queri':184C 'read':77B 'record':140C 'recov':173C 'recurs':120C 'sdk/trace.newtracerprovider':106C 'span':122C,208C 'string':185C 'system':160C 'therefor':139C 'tls':204C 'token':176C 'topolog':170C 'tracer':56B 'tracerprovid':109C 'url':10A,69B,73B,91B,156C,180C 'user':181C 'version':102C,215C 'whose':117C 'write':58B 'zipkin':51B,71B,90B,154C,179C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-16T20:17:32+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6505","url":"https://pkg.go.dev/vuln/GO-2026-6505","severity":null,"published_at":"2026-10-01T20:23:56+00:00","modified_at":"2026-10-01T20:23:56+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-81870","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-81870","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-81870","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-81870","severity":null,"published_at":"2026-09-16T20:17:32+00:00","modified_at":"2026-09-30T17:51:56+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}