docs
stormdoor.dev
FINDING

secret.url_credentials

A username and password embedded in an http(s) URL or an HTTP Basic Authorization header appears in the text.

SEVERITY
medium
LEADS TO
suspect
GATE
/v1/secrets
CHECK
secret.url_credentials
Jump to what to do

What it looks at#

Two shapes. A URL such as https://user:password@host/, and an Authorization: Basic <base64> header whose base64 decodes (bounded to 512 characters) to user:password. The reported span is the password, or the base64 value.

Skipped: an empty or very short password, a password equal to the user name, stock defaults (password, pass, admin, changeme, …), template placeholders (<token>, shell-variable references, {{ ... }}, xxxx, REDACTED), and a Basic value with no colon. When a curl command also matches gitleaks’ curl-auth-header rule on the same Basic value, you get one secret.provider_token finding for it, not two.

Why it matters#

The credentials work wherever the URL or header is accepted, and they travel in logs, browser history and referrers in plain sight. Unlike a named provider token, what they unlock is unknown: sometimes a throwaway staging box, sometimes a package registry.

What to do#

Medium severity. Rotate the password if the host is real, and move the credential out of the URL into a header or credential helper (git credential, a .netrc, a secret store).

Example#

curl -s -X POST https://api.stormdoor.dev/v1/secrets \
  -H "Authorization: Bearer sk_live_..." \
  -H "content-type: application/json" \
  -d '{"text":"git clone https://deploy:Xk9sLm2Qw7Vb@git.example.org/team/repo.git"}'

The response carries one secret.url_credentials finding.

OTHER FINDING CODES FROM /V1/SECRETS