CVE-2026-69183 Security feature bypass in monkeytype
Attackers bypass rate limits and brute-force protections by spoofing HTTP headers, enabling mail bombing and resource exhaustion in Monkeytype.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2026-69183?
CVE-2026-69183 is a high-severity vulnerability in monkeytypegame monkeytype, published on 20 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Monkeytype is a minimalistic and customizable typing test. In 26.26.0 and earlier, the backend rate-limit key generator in backend/src/middlewares/rate-limit.ts uses client-controlled cf-connecting-ip and x-forwarded-for headers before the trust-proxy-derived req.ip value. An unauthenticated attacker can rotate either header to create a new bucket for each request, bypassing rootRateLimiter, badAuthRateLimiter, getKey(), and the getKeyWithUid() fallback used by public endpoints. This permits repeated POST /users/forgotPasswordEmail and verificationEmail requests, mail bombing registered users, consuming Firebase or SMTP quota, evading brute-force protection, and enabling resource exhaustion. Exploitability of cf-connecting-ip depends on deployment topology, but x-forwarded-for and direct-to-origin paths remain affected when those values are not overwritten by a trusted proxy. No fixed version is available as of this review.
Which versions are affected by CVE-2026-69183?
How do I fix CVE-2026-69183?
No fix has been published for CVE-2026-69183 yet. Limit exposure of the affected software until one is available.
Is CVE-2026-69183 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-69183 exists.
Sources
Also known as GHSA-c878-p3jh-mmjf.