Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure authenticated admin to malicious page
-
DeliveryBrowser sends cross-origin request with session cookie
-
ExploitInclude arbitrary x-api-key header
-
ExecutionCSRF validation skipped on header presence
-
ImpactServer executes destructive admin API call
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a specific, named misconfiguration: CORS_ALLOWED_ORIGINS must be set permissively (broadly or to '*') so the attacker's origin is allowed - this is not the default and is the primary limiting factor. Additionally, a victim who is an authenticated MyTube administrator with an active session cookie must be lured into visiting attacker-controlled content (the UI:R user-interaction requirement). No valid API key or prior authentication is needed by the attacker: the flaw in shouldSkipCsrfProtection()/isApiKeyRequest() grants the CSRF exemption on mere presence of an 'x-api-key' header or 'Authorization: ApiKey' value, so any arbitrary value (e.g. 'bogus') suffices to skip CSRF token validation while the victim's cookie authenticates the request. Properly restricted CORS origins eliminate the browser-delivered attack path. |
| Impact | This is a moderate, conditional risk rather than a drop-everything priority. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N, base 6.8) tells a consistent story with the description: network-reachable and unauthenticated from the attacker's side (PR:N), but gated by two real-world frictions - AC:H reflecting the non-default permissive CORS_ALLOWED_ORIGINS requirement, and UI:R reflecting the need to lure a logged-in administrator to attacker-controlled content. The vuln.today decision label is 'this_month', not act_now or emergency, which aligns with the conditional nature. There is no EPSS score, no CISA KEV listing, and no vendor/CISA claim of active exploitation in the supplied data, so there is no evidence of in-the-wild use; the GHSA advisory does include a concrete browser-based PoC, so working-grade exploitation is clearly plausible but the input does not mark the PoC as a confirmed working exploit. The main caveat to flag: exploitability hinges entirely on a permissive CORS configuration (broad or '*'), a setting that is attacker-independent and common in self-hosted deployments but NOT the shipped default, so raw CVSS severity overstates risk for well-configured instances and understates it for careless ones. No SSVC automatable/technical-impact decision fields were supplied to cross-check. |
| Exploit ScenarioDerived | An administrator is logged into a self-hosted MyTube instance whose CORS_ALLOWED_ORIGINS has been set broadly (e.g. '*' or to include an attacker origin). The attacker lures that admin to a malicious page that issues a cross-origin DELETE/POST to the MyTube API carrying a bogus 'x-api-key' header and the victim's session cookie; because CSRF is skipped merely on header presence, the server executes the state-changing call. A detailed proof-of-concept HTML page is published in the GHSA advisory, though the input does not confirm it as verified working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
CSRF protection bypass in MyTube, a self-hosted video downloader and player, lets an unauthenticated attacker perform state-changing administrator API actions - deleting media, triggering downloads, altering subscriptions - on behalf of a logged-in admin. The root cause is that shouldSkipCsrfProtection() in backend/src/middleware/csrfConfig.ts delegates to isApiKeyRequest(), which grants the CSRF exemption on the mere presence of an 'x-api-key' header or 'Authorization: ApiKey' value rather than on a validated key, so any bogus value skips the double-submit token check while the victim's session cookie authenticates the request. Exploitation is conditional: it requires CORS_ALLOWED_ORIGINS to be configured permissively (broadly or to '*') so the attacker's origin is reachable from the browser, plus an administrator lured to attacker-controlled content (UI:R, AC:H); no KEV entry or confirmed working exploit is recorded, and the public advisory does include a step-by-step PoC description. The issue is fixed in version 1.10.6.
RemediationAI
Upgrade MyTube to 1.10.6, which replaces the presence-only isApiKeyRequest() guard in shouldSkipCsrfProtection() with the validating isApiKeyAuthorized() helper moved to backend/src/utils/apiKeyAuth.ts (commit b2000d8b239fd2e44b0e6160137c8b636a09cc89; advisory https://github.com/franklioxygen/MyTube/security/advisories/GHSA-9qxv-p8j9-gv5r). Because exploitation depends on the attacker's origin being allowed by the browser, the most direct compensating control before patching is to set CORS_ALLOWED_ORIGINS to an explicit list of trusted origins and never to '*'; the trade-off is that any third-party front end or integration relying on a wildcard or broad origin list must be given an explicit entry or it will break. Note that the vulnerability is only exploitable in the API-key exemption path, so an instance with API key authentication left disabled (apiKeyEnabled not true, as the fixed code requires for the exemption) does not grant the CSRF skip; disabling the API key feature where it is unused narrows exposure, at the cost of breaking API-key-based automation against that instance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
MyTube is an Express/TypeScript backend (npm package 'mytube') protecting state-changing API routes with double-submit-cookie CSRF middleware plus a session-based auth middleware. CWE-352 (Cross-Site Request Forgery) arises here from a logical gap between two control layers: the CSRF layer runs first and decides whether to skip token validation, and it did so using isApiKeyRequest(), a presence-only check (Boolean of req.headers['x-api-key'] || authorization?.startsWith('ApiKey ')). The actual key comparison - constant-time comparison of the supplied key against the configured apiKey, gated on apiKeyEnabled and a non-empty stored key - lived in authMiddleware and ran only afterwards, so the CSRF gate was already open. The fix (commit b2000d8b239fd2e44b0e6160137c8b636a09cc89) extracts the validation helpers into backend/src/utils/apiKeyAuth.ts and has csrfConfig.ts call isApiKeyAuthorized() instead of isApiKeyRequest(), so the exemption is granted only for a positively validated key, with RSS-management requests still excluded from the bypass. A regression test was added asserting that a request with X-API-Key: wrong-key against a protected route returns 403.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
AC:H for the required non-default permissive CORS and UI:R for luring an admin; PR:N as the attacker needs no key; I:H for destructive admin operations, C:L as responses may be read only under permissive CORS.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
MyTube is a self-hosted downloader and player for several video websites. Prior to 1.10.6, shouldSkipCsrfProtection() in backend/src/middleware/csrfConfig.ts delegates to isApiKeyRequest(), which grants a CSRF exemption based only on the presence of an x-api-key header or an Authorization: ApiKey value rather than successful API-key validation. With a permissive CORS_ALLOWED_ORIGINS configuration, an unauthenticated attacker can lure an authenticated administrator to attacker-controlled content that sends a cross-origin state-changing request with an arbitrary API-key value. The victim's session cookie authenticates the request while CSRF token validation is skipped, allowing destructive or other administrator API operations such as deleting media, triggering downloads, or changing subscriptions. This issue is fixed in version 1.10.6.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
EUVD-2026-116195
NVD
CVE.org
GitHub
Exploit-DB