← Back to CVE Explorer

CVE-2026-66001

Full vulnerability record from the local CVENow database.

Description

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.

Severity
HIGH
CVSS score
8.5 (v4.0)
Vulnerability status
Deferred
Source identifier
Published
2026-08-20 19:16:58.020000
Last modified
2026-10-26 10:10:00.140000
View original CVE JSON
{
  "id": "CVE-2026-66001",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-20T19:16:58.020",
  "lastModified": "2026-10-26T10:10:00.140",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "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."
    },
    {
      "lang": "es",
      "value": "Frappe es un framework de aplicación web full-stack. Antes de las versiones 15.114.0 y 16.26.0, las funciones ’approve’ y ’authorize’ en frappe/integrations/oauth2.py permiten que el flujo de consentimiento de OAuth2 proceda sin restringir ’approve’ a POST, sin un csrf_token en frappe/templates/includes/oauth_confirmation.html, y sin limitar la verificación de un token OAuth activo al cliente solicitante. Un atacante puede hacer que un usuario autenticado apruebe una concesión OAuth o reutilice el estado de autorización para el cliente equivocado, exponiendo datos y permitiendo acciones dentro de los alcances concedidos. Este problema está solucionado en las versiones 15.114.0 y 16.26.0."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "frappe",
          "product": "frappe",
          "versions": [
            {
              "version": "< 15.114.0",
              "status": "affected"
            },
            {
              "version": ">= 16.0.0-beta.1, < 16.26.0",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "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",
          "baseScore": 8.5,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "NONE",
          "privilegesRequired": "NONE",
          "userInteraction": "ACTIVE",
          "vulnConfidentialityImpact": "HIGH",
          "vulnIntegrityImpact": "HIGH",
          "vulnAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-25T15:20:04.226255Z",
          "id": "CVE-2026-66001",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-352"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/frappe/frappe/commit/336c7d335db762b494acdfe43aea69d459fd51d7",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/commit/d7460769f999c68d3121b680119f8724ddd3eb9d",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/commit/eb9c1446cac13236c6d573b136786db2e46254fa",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/pull/40073",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/pull/40700",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/pull/40701",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/releases/tag/v15.114.0",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/releases/tag/v16.26.0",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/frappe/frappe/security/advisories/GHSA-2ph8-x773-8p2x",
      "source": "[email protected]"
    }
  ]
}