Katalog CVE

CVE-2026-69183

WysokieCVSS 7.5
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Monkeytype w wersji 26.26.0 i wcześniejszych ma podatność w generatorze kluczy rate-limit, który używa nagłówków kontrolowanych przez klienta (cf-connecting-ip i x-forwarded-for) przed wartością req.ip. Nieuwierzytelniony atakujący może obracać te nagłówki, aby ominąć ograniczenia rate-limitu, co pozwala na wielokrotne wysyłanie żądań do endpointów takich jak forgotPasswordEmail i verificationEmail, powodując mail bombing, wyczerpanie limitów Firebase/SMTP i unikanie ochrony brute-force.

Ocena ryzyka

Atakujący może zasypać użytkowników e-mailami, wyczerpać zasoby usług zewnętrznych i doprowadzić do wyczerpania zasobów systemu.

Rekomendacja

Zaktualizuj Monkeytype do wersji z poprawką, jeśli dostępna. Skonfiguruj zaufany proxy, aby nadpisywał nagłówki cf-connecting-ip i x-forwarded-for.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS