Description
9Router is an AI router & token saver. Prior to 0.4.80, the dashboard login rate limiter in src/lib/auth/loginLimiter.js derives the client identity from the attacker-controlled X-Forwarded-For HTTP header, and src/app/api/auth/login/route.js uses that spoofable value for checkLock and recordFail. A remote attacker can rotate the X-Forwarded-For value on each login attempt to receive a fresh rate-limit bucket, bypass the 5-attempt threshold and progressive lockout durations, and perform unlimited brute-force attempts against the dashboard password. This issue is fixed in version 0.4.80.
Published: 2026-07-10
Score: 7.3 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability lies in the authentication rate limiting logic, which uses the X-Forwarded-For header—an attacker-controlled value—to identify clients. Because this header can be spoofed for each login attempt, the login limiter unintentionally assigns a new bucket for every request. The result is that a remote attacker can bypass the 5-attempt threshold, avoid progressive lockout, and perform unlimited brute‑force attempts on the dashboard. The weakness corresponds to CWE‑307, an authentication bypass via spoofable request data. If exploited, an attacker can gain unauthorized access to the administrative interface, compromising confidentiality and potentially enabling further privilege escalation.

Affected Systems

The affected product is the 9Router AI router and token saver developed by decolua, specifically versions prior to 0.4.80. The login rate limiter bug exists in src/lib/auth/loginLimiter.js and src/app/api/auth/login/route.js, and it is fixed in release v0.4.80. Administrators running earlier releases are therefore impacted.

Risk and Exploitability

The CVSS score is 7.3, indicating a high severity. The EPSS score is < 1%, indicating a very low probability of exploitation, and the flaw is not listed in CISA KEV, so the likelihood of widespread exploitation is low. However, the attack vector is remote over HTTP(S), and no credential or privilege escalation prerequisites are required: an attacker can inject a spoofed X-Forwarded-For header in standard login requests. The bypass allows unlimited login attempts, making this a critical operational risk for exposed dashboards.

Generated by OpenCVE AI on July 29, 2026 at 10:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade 9Router to version 0.4.80 or later to receive the patch that fixes the login limiter logic.
  • Configure the application or reverse proxy to ignore or validate X‑Forwarded‑For headers from untrusted sources, ensuring that client IPs cannot be spoofed for authentication.
  • If an upgrade is not immediately feasible, enforce additional login throttling or IP‑based blocking rules at the network perimeter to limit brute‑force attempts against the dashboard.

Generated by OpenCVE AI on July 29, 2026 at 10:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7cfm-pqrj-xgq7 9router: Login brute-force protection bypass via spoofed X-Forwarded-For header
History

Fri, 10 Jul 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 10 Jul 2026 16:45:00 +0000

Type Values Removed Values Added
First Time appeared Decolua
Decolua 9router
Vendors & Products Decolua
Decolua 9router

Fri, 10 Jul 2026 15:45:00 +0000

Type Values Removed Values Added
Description 9Router is an AI router & token saver. Prior to 0.4.80, the dashboard login rate limiter in src/lib/auth/loginLimiter.js derives the client identity from the attacker-controlled X-Forwarded-For HTTP header, and src/app/api/auth/login/route.js uses that spoofable value for checkLock and recordFail. A remote attacker can rotate the X-Forwarded-For value on each login attempt to receive a fresh rate-limit bucket, bypass the 5-attempt threshold and progressive lockout durations, and perform unlimited brute-force attempts against the dashboard password. This issue is fixed in version 0.4.80.
Title 9router: Login brute-force protection bypass via spoofed X-Forwarded-For header
Weaknesses CWE-307
References
Metrics cvssV3_1

{'score': 7.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-10T16:45:23.879Z

Reserved: 2026-06-16T22:28:27.063Z

Link: CVE-2026-55501

cve-icon Vulnrichment

Updated: 2026-07-10T16:45:18.501Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T10:45:03Z

Weaknesses
  • CWE-307

    Improper Restriction of Excessive Authentication Attempts