CVE-2026-66001
Frappe is a full-stack web application framework. Prior to 15.114.0 and 16.26.0, the approve and authorize functions in frappe/integrations/oauth2.py allow the OAuth2 consent flow to proceed without restricting approve to POST, without a csrf_token in frappe/templates/includes/oauth_confirmation.html, and without scoping an active OAuth token check to the requesting client. An attacker can cause an authenticated user to approve an OAuth grant or reuse authorization state for the wrong client, exposing data and permitting actions within the granted scopes. This issue is fixed in versions 15.114.0 and 16.26.0.
CVSS
- Versión: 4.0
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- Puntuación base: 8.5
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.34%
- Percentil entre todas las CVEs puntuadas: 25
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1203Exploitation for Client Executionexecution85 % - Impacto principal
T1598.003Spearphishing Linkreconnaissance75 % - Impacto secundario
T1528Steal Application Access Tokencredential access80 %
UI:A + interacción del usuario en flujo OAuth (approve sin restricción POST). Impactos: phishing CSRF (T1598.003) y robo de tokens OAuth (T1528) sin escopado por cliente.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-352
Referencias
- https://github.com/frappe/frappe/commit/336c7d335db762b494acdfe43aea69d459fd51d7
- https://github.com/frappe/frappe/commit/d7460769f999c68d3121b680119f8724ddd3eb9d
- https://github.com/frappe/frappe/commit/eb9c1446cac13236c6d573b136786db2e46254fa
- https://github.com/frappe/frappe/pull/40073
- https://github.com/frappe/frappe/pull/40700
- https://github.com/frappe/frappe/pull/40701
- https://github.com/frappe/frappe/releases/tag/v15.114.0
- https://github.com/frappe/frappe/releases/tag/v16.26.0
- https://github.com/frappe/frappe/security/advisories/GHSA-2ph8-x773-8p2x
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-66001",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-66001",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-08-25T15:20:04.226255Z"
}
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 8.5,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "ACTIVE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "NONE",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "frappe",
"product": "frappe",
"versions": [
{
"status": "affected",
"version": "< 15.114.0"
},
{
"status": "affected",
"version": ">= 16.0.0-beta.1, < 16.26.0"
}
]
}
]
}
],
"published": "2026-08-20T19:16:58.020",
"references": [
{
"url": "https://github.com/frappe/frappe/commit/336c7d335db762b494acdfe43aea69d459fd51d7",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/commit/d7460769f999c68d3121b680119f8724ddd3eb9d",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/commit/eb9c1446cac13236c6d573b136786db2e46254fa",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/pull/40073",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/pull/40700",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/pull/40701",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/releases/tag/v15.114.0",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/releases/tag/v16.26.0",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/frappe/frappe/security/advisories/GHSA-2ph8-x773-8p2x",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-352"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Frappe is a full-stack web application framework. Prior to 15.114.0 and 16.26.0, the approve and authorize functions in frappe/integrations/oauth2.py allow the OAuth2 consent flow to proceed without restricting approve to POST, without a csrf_token in frappe/templates/includes/oauth_confirmation.html, and without scoping an active OAuth token check to the requesting client. An attacker can cause an authenticated user to approve an OAuth grant or reuse authorization state for the wrong client, exposing data and permitting actions within the granted scopes. This issue is fixed in versions 15.114.0 and 16.26.0."
}
],
"lastModified": "2026-09-16T13:42:44.967",
"sourceIdentifier": "security-advisories@github.com"
}