Summary
CVE-2026-63770 is a high-severity IP address spoofing vulnerability in Glance (glanceapp/glance), a popular self-hosted web dashboard, affecting all versions through 0.8.5. When the server proxied option is enabled, an unauthenticated remote attacker can manipulate the X-Forwarded-For request header to defeat the per-IP brute-force lockout mechanism, enabling unlimited credential guessing against the authentication endpoint. The vulnerability carries a CVSS v3.1 score of 7.5 (High) and a CVSS v4.0 score of 8.2 (High).
Technical details
- Root cause: The
addressOfRequest()function in Glance extracts the leftmost value from theX-Forwarded-Forheader — a client-controlled field — rather than the rightmost value appended by the trusted reverse proxy. This is classified as CWE-348 (Use of Less Trusted Source). - Trigger condition: Exploitation requires that the Glance instance is configured with
proxied: true. This is the setting explicitly recommended and required by Glance’s own documentation when deployed behind a reverse proxy such as nginx, Traefik, or NPM. - Attack mechanism: An unauthenticated attacker sends successive login requests, each supplying a unique spoofed IP as the leftmost entry in the
X-Forwarded-Forheader (e.g.,X-Forwarded-For: 1.2.3.4). The reverse proxy appends the real client IP as the rightmost entry, but Glance reads only the leftmost, accepting the attacker’s arbitrary value as the originating address. Each attempt is therefore counted against a fresh, never-before-seen IP. - Impact: The documented per-IP brute-force lockout (5 failed attempts per 5 minutes) is completely circumvented, enabling unlimited password-guessing against the login endpoint. Successful compromise grants full dashboard access, which may expose sensitive aggregated data including API keys and service credentials.
Affected software
- Glance (glanceapp/glance) — all versions through 0.8.5
Severity
- CVSS v3.1: 7.5 High —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Mitigation and recommended actions
- No patched release is currently available. A fix has been proposed in GitHub Pull Request #1033, which modifies
addressOfRequest()to extract the rightmost (proxy-appended) IP from theX-Forwarded-Forheader — the value that reflects the true connecting client and cannot be spoofed by the end user. Monitor the Glance GitHub repository for a new release incorporating this fix and upgrade immediately upon availability. - Interim workarounds:
- Implement rate limiting and connection throttling at the reverse proxy layer (nginx, Traefik, etc.) so that brute-force protection does not rely solely on Glance’s built-in per-IP counter.
- Restrict access to the Glance login endpoint to trusted IP ranges at the network or reverse proxy level.
- If the instance does not require internet exposure, place it behind a VPN or private network boundary to eliminate the remote attack surface entirely.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

