Casdoor IAM Flaw Breaks Tenant Isolation
An unpatched authorization bypass in Casdoor lets an org-level admin perform administrative actions against other tenants' organizations.
CERT/CC has published an advisory for CVE-2026-15630, an authorization bypass affecting the open-source Casdoor IAM platform (versions 3.115.0 and earlier). The flaw arises from a desynchronization between the global authorization filter, which validates requests using the '?id=' URL query parameter, and downstream controllers (e.g., controllers/user.go, controllers/permission.go), which instead act on the 'owner' and 'name' fields in the JSON request body. This mismatch means the object checked for authorization differs from the object actually acted upon, letting an authenticated organization administrator (IsAdmin=true) perform unauthorized administrative operations—such as creating or deleting users, modifying permissions, or disrupting SSO/SAML configurations—against organizations they do not own.
In multi-tenant Casdoor deployments, this breaks the isolation boundary between tenants: a low-privileged organization admin can escalate to affect other organizations, and depending on exposed endpoints and deployment configuration, this could lead to full compromise of the Casdoor instance itself. No vendor patch is currently available, as CERT/CC was unable to coordinate disclosure with the Casdoor maintainers. The vulnerability was reported by Louis Sanchez of Voke Cyber.
Defenders running Casdoor in multi-tenant configurations should treat this as a priority mitigation item given the absence of a patch. Recommended interim measures include minimizing accounts with IsAdmin=true, enforcing MFA on administrative accounts/actions, alerting on cross-organization administrative activity (new admin account creation, cross-tenant user deletion, permissive wildcard Casbin rules), and monitoring for unexplained changes in user counts or administrative objects across organizations.
Mentioned in this report
Detection guidance
Casdoor Cross-Tenant User Creation by Non-Owner Admin
Authenticated admin creating users in organizations they do not own via desync between URL id parameter and JSON body owner field. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Casdoor Cross-Tenant User Creation by Non-Owner Admin
description: Detects an authenticated Casdoor admin (IsAdmin=true) creating users
in an organization other than their own by exploiting the authorization bypass in
CVE-2026-15630. The attack leverages the mismatch between the 'id' URL query parameter
(checked by global filter) and the 'owner' field in the JSON body (used by the controller).
tags:
- attack.persistence
- attack.t1136
- attack.t1078.004
logsource:
category: application
product: casdoor
detection:
selection:
http_method: POST
http_path|contains: /api/add-user
request_body|contains:
- '"owner"'
- '"name"'
authenticated_user_is_admin: 'true'
filter_own_organization:
request_body_owner: request_query_id
condition: selection and not filter_own_organization
falsepositives:
- Legitimate delegated user provisioning by Casdoor administrators managing multiple
owned organizations
level: high
id: b0d5a7e4-4214-5ffd-ab64-599859cd21e7
status: experimental
author: Vorant
Behavioural rules are generated from public reporting — validate in your environment before deploying.
Source reporting: https://kb.cert.org/vuls/id/889462
This is the public brief
Subscribers see the full picture: extracted IOCs, ready-to-deploy detections (Sigma, Splunk, KQL, Elastic, YARA, Suricata), the entity graph, TAXII 2.1 feed and real-time alerts matched to your sectors.
Start free