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.
Problem types
CWE-307: Improper Restriction of Excessive Authentication Attempts
Product status
References
github.com/...router/security/advisories/GHSA-7cfm-pqrj-xgq7
github.com/...router/security/advisories/GHSA-7cfm-pqrj-xgq7
github.com/...ommit/7648c3412b403a29f04967c4b4e9725e228791d4
github.com/decolua/9router/releases/tag/v0.4.80