A critical authorization bypass in Casdoor through version 4.4.0 lets anyone holding a single application's clientId and clientSecret administer users across every organization in the deployment.
What Is It
CVE-2026-91998 is an authorization bypass (CWE-863, Incorrect Authorization) in the /api/mcp endpoint of Casdoor, an open-source identity and access management platform. The endpoint accepts legitimate application credentials, a clientId and clientSecret pair from any registered application, and then fails to scope the resulting access to that application's organization. The result is unrestricted user administration across all organizations.
The flaw carries a CVSS 3.1 base score of 9.9 (CRITICAL, AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) and a CVSS 4.0 score of 9.4 (CRITICAL). The scope change in the 3.1 vector reflects exactly what makes this severe: credentials issued for one security boundary grant control over all of them. It was disclosed via VulnCheck and published 2026-09-15.
Why It Matters
Casdoor is an identity provider; compromise here is compromise of everything sitting behind it. Per the advisory, an attacker with one application's credentials can:
- Enumerate user records, including password salts and email addresses
- Create administrator accounts in any organization
- Modify existing users
- Delete users in any organization
Creating an admin account in an arbitrary organization is a direct path to tenant takeover, and it requires no user interaction and no elevated starting privileges beyond credentials that many deployments distribute freely to internal or third-party applications. Attack complexity is rated LOW.
Exploitation status: this CVE does not appear in the CISA Known Exploited Vulnerabilities catalog at time of writing, and no exploit maturity is defined in the CVSS 4.0 vector. There is no confirmed active exploitation to report.
What's Vulnerable
- Vendor/product: casdoor/casdoor
- Affected versions: all versions from 0 through and including 4.4.0 (semver)
- Component: the
/api/mcpendpoint; the advisory points toauthz/authz.go,mcpself/user.go, androuters/base.goin the v4.4.0 tree
Patch Status
The supplied NVD record lists no fixed version and no vendor patch reference, and the CVE remains in Received status. No required-action or remediation deadline is specified. Until a fix is confirmed, operators should treat /api/mcp as an exposed administrative surface and restrict network access to it.
Sources
- NVD, CVE-2026-91998 (source: [email protected]): https://nvd.nist.gov/vuln/detail/CVE-2026-91998
- VulnCheck Advisory: https://www.vulncheck.com/advisories/casdoor-through-4.4.0-cross-organization-user-administration-via-api-mcp
- Researcher writeup (geo-chen): https://github.com/geo-chen/oss/blob/main/casdoor.md#finding-2-application-credential-authorization-bypass-in-apimcp-enables-unrestricted-cross-organization-user-administration
- Casdoor project: https://github.com/casdoor/casdoor
- Affected code,
authz/authz.go: https://github.com/casdoor/casdoor/blob/v4.4.0/authz/authz.go#L174-L176 - Affected code,
mcpself/user.go: https://github.com/casdoor/casdoor/blob/v4.4.0/mcpself/user.go - Affected code,
routers/base.go: https://github.com/casdoor/casdoor/blob/v4.4.0/routers/base.go#L122-L154