Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover proxied Glance login endpoint
-
DeliverySend login guess with unique X-Forwarded-For IP
-
ExploitPer-IP lockout counter never reaches threshold
-
ExecutionRepeat guesses at unlimited rate
-
ImpactRecover valid credentials and authenticate
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication IP-independent access control
|
| Exploitation Conditions | The Glance server must be running with the Server.Proxied option enabled (a non-default deployment mode intended for reverse-proxy setups); this is the concrete AT:P attack requirement. Under that condition the authentication handler reads the client-controlled leftmost X-Forwarded-For value as the source identity for its per-IP failed-login counter, so an unauthenticated remote attacker simply supplies a different arbitrary XFF leftmost value on each request to evade the lockout threshold. Limiting factors: if 'proxied' is disabled the app uses RemoteAddr and is not exploitable; and even with the bypass, gaining access still requires guessing valid credentials, so strong/unique passwords materially reduce real-world impact. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H) scores 8.2 (High): network-reachable, low complexity, no privileges or user interaction, but with AT:P signalling a genuine attack requirement - the non-default 'proxied' option must be enabled. This AT:P condition is the single most important tempering factor: default Glance installations that do not sit behind a configured trusted proxy are not affected. There is no EPSS score, KEV listing, or POC provided, so this is not evidence of active or widespread exploitation; the risk is driven by ease of technique rather than observed attacks. The VC:H rating is somewhat optimistic in that the header spoof itself only removes rate limiting - actual confidentiality loss still depends on weak or guessable credentials - so treat this as an enabler that amplifies credential-guessing risk rather than a direct data-disclosure bug. Net: a real, easily-weaponized weakness for proxied deployments with weak passwords, but lower priority for default (non-proxied) installs. |
| Exploit ScenarioDerived | An attacker locates a Glance instance running in proxied mode and repeatedly POSTs login guesses to the authentication endpoint, incrementing the leftmost X-Forwarded-For value (e.g. 1.1.1.1, 1.1.1.2, ...) on each request. Each attempt registers as a distinct source IP, so the per-IP lockout never fires and the attacker can run an unbounded dictionary or credential-stuffing attack until a valid password is found. No POC was published, but the fix diff and advisory make the header-rotation technique straightforward to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 20, 2026
Brute-force protection bypass in Glance (glanceapp/glance) 0.8.5 lets remote unauthenticated attackers defeat the per-IP failed-login lockout by rotating the leftmost value of the X-Forwarded-For header, but only when the server 'proxied' option is enabled. Because the authentication handler trusted the client-supplied leftmost XFF value instead of the trusted reverse proxy's rightmost value, each guess appears to come from a new IP and the lockout counter never trips, enabling unlimited credential guessing against the login endpoint. No public exploit identified at time of analysis and it is not in CISA KEV, though the upstream fix (PR #1033) and VulnCheck advisory make the technique trivially reproducible.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply the change from https://github.com/glanceapp/glance/pull/1033, which makes addressOfRequest() use the rightmost (trusted-proxy-appended) X-Forwarded-For value instead of the spoofable leftmost value, and upgrade to the first tagged release that includes this commit once published (verify against the project releases page). As an immediate compensating control on 0.8.5, disable the server 'proxied' option if the deployment does not actually require it - this reverts identity resolution to RemoteAddr and removes the spoofing surface, at the cost of losing real client IPs when Glance genuinely runs behind a proxy. Alternatively, terminate and strip/normalize the X-Forwarded-For header at the trusted reverse proxy (e.g., have nginx overwrite XFF with $remote_addr rather than appending) so downstream code cannot see client-supplied entries; the side effect is that any legitimately forwarded upstream chain is discarded. Reference the vendor advisory at https://www.vulncheck.com/advisories/glance-ip-spoofing-authentication-brute-force-protection-bypass.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Glance is a self-hosted dashboard/start-page application written in Go. The flaw is a classic CWE-348 (Use of Less Trusted Source): the addressOfRequest() helper in internal/glance/glance.go returned ips[0] - the leftmost X-Forwarded-For entry - as the client identity used for rate limiting. In a standard reverse-proxy deployment the leftmost XFF value is fully attacker-controlled and only the rightmost hop (appended by the trusted proxy) is reliable. The PR #1033 diff confirms the corrected behavior: it now trims and returns the last (rightmost) IP and falls back to RemoteAddr when the header is empty or malformed. The X-Forwarded-For dependence is only active when the Server.Proxied configuration flag is true; without proxied mode Glance uses RemoteAddr and the spoofing surface does not exist.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network, unauthenticated, no UI; AC:H because the non-default proxied config precondition (AT:P in 4.0) has no direct 3.1 equivalent; C:H reflects credential compromise enabled by the lockout bypass, I/A none.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
Glance through 0.8.5 contains an IP address spoofing vulnerability in the authentication handler that allows unauthenticated attackers to bypass brute-force lockout protections by supplying arbitrary values in the X-Forwarded-For request header when the server proxied option is enabled. Attackers can manipulate the leftmost value of the X-Forwarded-For header to make each login attempt appear to originate from a distinct IP address, preventing the per-IP failed-login counter from reaching the lockout threshold and enabling unlimited credential guessing against the authentication endpoint.
Executive ViewAI
Glance 0.8.5 contains an authentication brute-force protection bypass when the 'proxied' configuration option is enabled, allowing remote attackers to defeat per-IP login rate limiting by manipulating the X-Forwarded-For header. This exposes organizations running Glance with proxied reverse proxy configurations to unauthorized account compromise through unlimited credential guessing attacks. No public exploit identified at time of analysis, though the attack technique is straightforward to reproduce; remediation is required immediately for affected deployments.
Disable the 'proxied' configuration option if operationally feasible. If the feature is required for operations, configure the reverse proxy or load balancer to override all client-supplied X-Forwarded-For headers with the actual client connection IP from the trusted proxy layer, and implement username-based rate limiting at the proxy layer to prevent per-IP spoofing bypass techniques.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-46071
GHSA-jmgq-484h-mrfw
NVD
CVE.org
EPSS
VulDB
Exploit-DB