You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
URL passwords leak into logs via http.Get error messages #12
Destination.UrlString() carefully redacts the password component of a URL with [...] for logging (destinations.go:46-50). That redaction is undone whenever the HTTP check fails: LogDestinationError logs the raw error returned by http.Get(dest.URL), and Go's *url.Error.Error() embeds the original URL string — userinfo included — verbatim.
The deliberate password-suppression elsewhere in the codebase signals that this is a real concern, not a hypothetical one.
$ connectivity check
... [host][HTTP:] Failed HTTP GET: Get "http://admin:hunter2@host.invalid/health": dial tcp: lookup host.invalid: no such host
The password is in plaintext in the log line, in operator log aggregators, in CI output, etc.
Impact
Credentials embedded in a URL (a not-uncommon pattern for quick health checks of authenticated endpoints) are persisted to logs whenever the endpoint fails. Anyone with log read access can recover the password.
Suggested fix
Strip userinfo from the URL before passing to http.Get, send credentials as an explicit Authorization header on the http.Request, and never log the URL field of a *url.Error. Example:
Activity
add hermetic tests for EscapeTag, statsd, LoadConfig, HTTPS, UrlString (