CVE-2026-69183
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
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.
Inne podatności w Monkeytype
Zobacz wszystkie- CVE-2025-66563Średnie
Monkeytype w wersji 25.49.0 i wcześniejszych nieprawidłowo obsługuje dane wejściowe użytkownika, co pozwala atakującemu na wykonanie złośliwego kodu JavaScript u każdego, kto wyświetli złośliwe zgłoszenie cytatu. Pola quote.text i quote.source są danymi użytkownika i są wstawiane bezpośrednio do DOM; jeśli zawierają znaczniki HTML, zostaną wyrenderowane (po częściowym escapowaniu za pomocą cudzysłowów i tagów textarea).
- CVE-2025-59838Średnie
Monkeytype, aplikacja do testów pisania, ma podatność XSS wynikającą z nieprawidłowego obsługiwania danych wejściowych użytkownika podczas ładowania zapisanego niestandardowego tekstu. Dotyczy wersji 25.36.0 i wcześniejszych; poprawka w wersji 25.44.0.
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

