CVE-2026-56682

9Router: Login Brute-Force Lockout Bypass via Spoofable X-9r-Real-Ip Header

State
Published
Severity
5.3 Medium
Published
Sep 22, 2026
Updated
Sep 22, 2026
Reserved
Jun 22, 2026

Read the record on cve.org

Description

9Router is an AI router & token saver. Prior to 0.5.6, 9Router deployments that allow requests to reach Next.js without the sanitizing custom-server.js wrapper use the client-supplied X-9r-Real-Ip value as the bucket key in getClientIp, checkLock, and recordFail in src/lib/auth/loginLimiter.js for POST /api/auth/login. A remote unauthenticated attacker can rotate the header on every password guess so each request uses a new failed-attempt bucket and the five-attempt progressive lockout never returns HTTP 429. This permits unthrottled password guessing against the dashboard login and can lead to an administrative session if the password is recovered. This issue is fixed in version 0.5.6.

Scores

CVSSScoreVectorSource
3.15.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NGitHub_M

Weaknesses

  • CWE-307 Improper Restriction of Excessive Authentication Attempts
  • CWE-807 Reliance on Untrusted Inputs in a Security Decision

Affected Products

ProductVersions
9routerdecolua
  • < 0.5.6Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.