Homer: Hardcoded Default Admin Password 'sipcapture' With No Forced Change on First Login
CVE-2026-62252 · GHSA-6xp5-7rcx-xfgx · GO-2026-6671 · published 7 Oct 2026
How serious is it
- Severity: critical.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2026-62252?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
github.com/sipcapture/homer-app(Go) < 0.0.0-20260625091610-b2e942031ff8
How to check
- Run
go list -m github.com/sipcapture/homer-appin your project to see the installed version, including copies pulled in by other packages. - Or paste your lockfile into the checker: it lists every package with a known vulnerability, this one included.
How to fix
Copies a prompt for Claude Code, Cursor or Codex: it checks your lockfiles for this and upgrades it.
- Upgrade
github.com/sipcapture/homer-appto 0.0.0-20260625091610-b2e942031ff8 or later, commit the lockfile and redeploy. - If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
### Summary
On every fresh Homer deployment using internal authentication, the bootstrap process automatically creates an `admin` account with the password `sipcapture` (stored as a legacy SHA-256 hex hash). There is no first-login forced-change mechanism. Any attacker who reaches the login endpoint immediately gains full administrative access.
### Details
**`config/config.go` lines 858-861:**
```go
// DefaultInternalAuthPasswordHash is the SHA-256 hex digest of the default
// bootstrap password (cleartext: sipcapture).
const DefaultInternalAuthPasswordHash = "883ffc1f37fd0fe542b0fb9740035c4383e7d976c411161d24e62edace280f90"
```
**`coordinator/services/auth_bootstrap.go` lines 20-71:** `EnsureBootstrapAdminUser()` runs at startup. If no admin user exists, it inserts a row with `username=admin`, `password_hash=DefaultInternalAuthPasswordHash`. No `force_change`, no `first_login` flag, no expiry is set.
**`coordinator/services/auth_bootstrap_test.go` line 114** confirms the plaintext:
```go
u, err := svc.Authenticate(ctx, "admin", "sipcapture")
```
**`passwordhash/password.go` lines 36-45:** Legacy SHA-256 hex hashes are accepted via `legacySHA256HexEqual`, so the default credential is functional on any deployment.
### PoC
```bash
# Authenticate with default credentials — works on any fresh Homer deployment
curl -s -X POST http://<homer-host>/api/v3/auth \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"sipcapture"}'
# Response: {"token":"<admin-jwt>","data":{"userGroup":"admin"}}
# Use the token to access all admin functionality
curl -H "Authorization: Bearer <admin-jwt>" http://<homer-host>/api/v3/users
```
### Impact
Use of Hard-coded Credentials (CWE-798). Any attacker who can reach a freshly deployed Homer instance gains immediate full administrative access using the publicly documented default password, with no lockout, rate limiting, or forced password change required.
### Fix
Remove the hardcoded `DefaultInternalAuthPasswordHash` constant. Require operators to provide a hashed admin password in the configuration file. Alternatively, generate a random password on first startup, print it to stdout once, and immediately force a change on first login.
If possible, please apply for a CVE number when posting.
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- github.com/sipcapture/homer/security/advisories/GHSA-6xp5-7rcx-xfgx
- github.com/sipcapture/homer/commit/b2e942031ff8cd7435a244ebef306ee97d16b809
- github.com/sipcapture/homer/pull/838
- github.com/sipcapture/homer/releases/tag/11.0.283
- github.com/sipcapture/homer
Merged from OSV. Last updated 24 Oct 2026. All vulnerabilities · RSS · JSON