CVE-2026-69183
HighCVSS 7.5Summary
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.
Risk Assessment
An attacker could spam users with emails, exhaust external service quotas, and cause resource exhaustion.
Recommendation
Update Monkeytype to a patched version if available. Configure a trusted proxy to overwrite cf-connecting-ip and x-forwarded-for headers.
Related vulnerabilities
- CVE-2026-78657Critical
The SigmaForms Pro – AI Generated Forms plugin for WordPress up to version 1.4.11 is vulnerable to arbitrary file deletion due to insufficient file path validation in the delete_submission_files function. Unauthenticated attackers can delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). The malicious path traversal URL is submitted via form upload field and stored in the database, with deletion triggered when an administrator deletes the submission record from the admin panel.
- CVE-2026-9055Critical
The Booking for Appointments and Events Calendar – Amelia (Premium) plugin for WordPress versions 8.0 - 9.6.2 is vulnerable to privilege escalation due to insufficient validation of the 'type' parameter in the customer update endpoint. This allows customers to set their role to 'manager' and trigger creation of a WordPress user with the wpamelia-manager role when 'externalId' is set to 0. Unauthenticated attackers can escalate to administrator by first elevating to manager, then creating a provider entity linked to an administrator user ID and overwriting that administrator's password.
- CVE-2026-84699Critical
Team Password Manager before version 14.184.308 fails to enforce authentication requirements in the local account password reset flow. Unauthenticated attackers can reset local account passwords and authenticate as those users to gain unauthorized access.
- CVE-2026-84354Critical
Incorrect authorization in FileSystem in Google Chrome prior to 152.0.7977.75 allowed a remote attacker leveraging social engineering to execute arbitrary code outside the sandbox via a crafted HTML page. (Severity: High)
- CVE-2026-84353Critical
Use after free in Shared Tab Groups in Google Chrome on Android prior to 152.0.7977.75 allowed a remote attacker leveraging social engineering to execute arbitrary code outside the sandbox via a crafted HTML page. (Severity: Critical)
- CVE-2026-84352Critical
Use after free in WebGL in Google Chrome on Android prior to 152.0.7977.75 allowed a remote attacker to execute arbitrary code outside the sandbox via a crafted HTML page. (Severity: Critical)
- CVE-2026-84333Critical
Use-after-free in Dawn in Google Chrome on Android prior to 152.0.7977.75. A remote attacker could execute arbitrary code outside the sandbox via a crafted HTML page.
- CVE-2026-84324Critical
Use after free in Proxy in Google Chrome prior to 152.0.7977.75 allowed a remote attacker to execute arbitrary code outside the sandbox via crafted network traffic. (Chromium security severity: High)
- CVE-2026-84480Critical
WWBN AVideo fails to validate password recovery token expiration in userRecoverPassSave.json.php, allowing attackers to use expired tokens to reset account passwords indefinitely. Attackers who obtain a recovery token can use it at any time to change the target account's password and gain full account access.
- CVE-2026-84479Critical
WWBN AVideo (current e01e41ecc and earlier) makes three login-time security controls depend solely on the client-supplied User-Agent header. The isAVideoEncoder()/isAVideoMobileApp() checks match HTTP_USER_AGENT against a hardcoded literal ("AVideoEncoder"/"AVideoMobileApp") with no IP check or shared secret. An attacker who submits valid credentials and sets User-Agent: AVideoEncoder bypasses two-factor authentication, skips brute-force captcha escalation, and avoids being recorded in the login/device audit history. No patch is available at the time of publication.
Original NVD description (English source)
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.

