CVE-2026-118762
KrytyczneCVSS 9.3Streszczenie
W repozytorium Monkeytype przepływ pracy GitHub Actions fix-formatting.yml uruchamiany na zdarzeniu pull_request_target posiada uprawnienia zapisu do repozytorium, pobiera kod z forka i instaluje zależności z pliku package.json forka, a następnie uruchamia kontrolowany przez forka binarny plik oxfmt. Ponieważ akcja actions/checkout zachowuje podwyższony token GITHUB_TOKEN w konfiguracji Git do momentu wykonania niezaufanego kodu, zewnętrzny współtwórca może wykonać dowolny kod, odczytać lub wykraść token oraz modyfikować zawartość repozytorium, pull requesty i zgłoszenia. Problem dotyczy przepływu CI repozytorium, a nie aplikacji Monkeytype ani danych użytkowników; został naprawiony w wersji 26.43.0.
Ocena ryzyka
Osoba atakująca może przejąć token o uprawnieniach zapisu do repozytorium i wprowadzić złośliwe zmiany w kodzie lub konfiguracji CI, co grozi kompromitacją łańcucha dostaw oprogramowania. Ryzyko dotyczy integralności repozytorium i procesu wydawniczego, nie danych użytkowników aplikacji.
Rekomendacja
Zaktualizuj repozytorium do wersji 26.43.0, która naprawia problem, oraz przejrzyj przepływy pracy oparte na pull_request_target pod kątem minimalnych uprawnień i braku wykonywania niezaufanego kodu z forków.
Inne podatności w Monkeytype
Zobacz wszystkie- CVE-2026-69183Wysokie
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.
- 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. Prior to 26.43.0, the .github/workflows/fix-formatting.yml workflow runs on pull_request_target with repository write permissions, checks out a fork pull request, installs dependencies from the fork's package.json, and invokes the fork-controlled oxfmt binary. Because actions/checkout persists the elevated GITHUB_TOKEN in Git configuration until after untrusted code executes, an external contributor whose pull request receives the format label can run arbitrary code, read or exfiltrate the token, and push repository content or modify pull requests and issues. The issue affects the repository CI workflow, not the Monkeytype application or user data. This issue is fixed in version 26.43.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

