CVE-2026-118762
CriticalCVSS 9.3Summary
In the Monkeytype repository, 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 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, and is fixed in version 26.43.0.
Risk Assessment
An attacker could steal a write-scoped repository token and inject malicious changes into code or CI configuration, risking software supply chain compromise. The risk concerns repository integrity and the release process, not application user data.
Recommendation
Upgrade the repository to version 26.43.0, which fixes the issue, and review pull_request_target-based workflows for least privilege and avoidance of executing untrusted fork code.
Other vulnerabilities in Monkeytype
See all- CVE-2026-69183High
Monkeytype 26.26.0 and earlier has a vulnerability in the rate-limit key generator that uses client-controlled cf-connecting-ip and x-forwarded-for headers before req.ip. An unauthenticated attacker can rotate these headers to bypass rate limits, allowing repeated requests to endpoints like forgotPasswordEmail and verificationEmail, causing mail bombing, exhausting Firebase/SMTP quotas, and evading brute-force protection.
- CVE-2025-66563Medium
Monkeytype in version 25.49.0 and earlier improperly handles user input, allowing an attacker to execute malicious JavaScript on anyone viewing a malicious quote submission. quote.text and quote.source are user input and are inserted straight into the DOM; if they contain HTML tags, they will be rendered (after some escaping using quotes and textarea tags).
- CVE-2025-59838Medium
Monkeytype, a typing test application, has an XSS vulnerability due to improper handling of user input when loading a saved custom text. Affects versions 25.36.0 and prior; fixed in version 25.44.0.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

