/

CVE-2026-111352

Severity:

HIGH RISK

(8.8)

Improper Authorization (CWE-863) in ThinkCMF REST API

CVE-2026-111352

Deferred

Vulnerability type

Category:

Improper Authorization

CWE:

CWE-863

Impact:

Privilege Escalation and Unauthorized Administrative Access

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

ThinkCMF through version 8.0.1 contains an incorrect authorization flaw in RestAdminBaseController. A restricted backend administrator with a valid admin-type API token may access administrative REST endpoints, expose member contact data, disable members, and grant full administrator privileges when authorization rules are absent.

ThinkCMF through version 8.0.1 contains an incorrect authorization flaw in RestAdminBaseController. A restricted backend administrator with a valid admin-type API token may access administrative REST endpoints, expose member contact data, disable members, and grant full administrator privileges when authorization rules are absent.

Affected context

The vulnerability occurs in ThinkCMF deployments that use the affected administrative REST API controller and rely on Auth::check() to enforce endpoint permissions. Risk is present when a restricted administrator possesses a valid admin-type API token and an endpoint does not have a corresponding admin_api authorization rule, causing the authorization check to fail open.

The vulnerability occurs in ThinkCMF deployments that use the affected administrative REST API controller and rely on Auth::check() to enforce endpoint permissions. Risk is present when a restricted administrator possesses a valid admin-type API token and an endpoint does not have a corresponding admin_api authorization rule, causing the authorization check to fail open.

Exploit preconditions

  • Attack surface: ThinkCMF administrative REST API endpoints
  • Required access: A valid API token associated with a restricted backend administrator
  • Trigger point: Requests routed through RestAdminBaseController for endpoints lacking an applicable admin_api rule
  • Why exploitation is possible: The authorization logic permits access when no matching authorization rule exists, allowing restricted administrators to invoke functions outside their intended privileges
  • Attack surface: ThinkCMF administrative REST API endpoints
  • Required access: A valid API token associated with a restricted backend administrator
  • Trigger point: Requests routed through RestAdminBaseController for endpoints lacking an applicable admin_api rule
  • Why exploitation is possible: The authorization logic permits access when no matching authorization rule exists, allowing restricted administrators to invoke functions outside their intended privileges

Why this happens

The underlying bug is an incorrect authorization decision caused by fail-open behavior. When Auth::check() cannot find an applicable admin_api rule, the request is treated as authorized instead of being denied by default. This maps to CWE-863: Incorrect Authorization, because access controls do not correctly constrain authenticated users to the permissions assigned to their role.

The underlying bug is an incorrect authorization decision caused by fail-open behavior. When Auth::check() cannot find an applicable admin_api rule, the request is treated as authorized instead of being denied by default. This maps to CWE-863: Incorrect Authorization, because access controls do not correctly constrain authenticated users to the permissions assigned to their role.

Potential impact

  • Restricted administrators may access unauthorized administrative REST API functions
  • Member email addresses and mobile numbers could be disclosed
  • Member accounts may be disabled without appropriate authorization
  • An attacker could grant themselves full administrator privileges
  • Administrative data and application configuration could be altered
  • The application could experience broader compromise through privilege escalation
  • Restricted administrators may access unauthorized administrative REST API functions
  • Member email addresses and mobile numbers could be disclosed
  • Member accounts may be disabled without appropriate authorization
  • An attacker could grant themselves full administrator privileges
  • Administrative data and application configuration could be altered
  • The application could experience broader compromise through privilege escalation

General mitigation guidance

Mitigation generally focuses on making authorization deny by default and ensuring every administrative endpoint has an explicit permission decision.

Common defensive patterns include:

  • Treating missing, malformed, or ambiguous authorization rules as denied
  • Defining explicit permission mappings for every administrative REST endpoint and HTTP method
  • Separating authentication from authorization and validating role capabilities at the controller boundary
  • Limiting API tokens to the minimum operations required by their assigned administrator role
  • Avoiding broad administrative permissions for restricted backend accounts
  • Protecting sensitive member data with additional field-level access controls
  • Auditing privilege-changing operations and requiring strong administrative safeguards

Mitigation generally focuses on making authorization deny by default and ensuring every administrative endpoint has an explicit permission decision.

Common defensive patterns include:

  • Treating missing, malformed, or ambiguous authorization rules as denied
  • Defining explicit permission mappings for every administrative REST endpoint and HTTP method
  • Separating authentication from authorization and validating role capabilities at the controller boundary
  • Limiting API tokens to the minimum operations required by their assigned administrator role
  • Avoiding broad administrative permissions for restricted backend accounts
  • Protecting sensitive member data with additional field-level access controls
  • Auditing privilege-changing operations and requiring strong administrative safeguards

How teams detect issues like this

Organizations can identify similar authorization flaws through:

  • Static analysis and code review searches for authorization checks that return success when rules are missing
  • Review of controller dispatch logic for default-allow behavior
  • Endpoint-to-permission coverage checks that identify routes without explicit authorization mappings
  • Negative authorization tests confirming restricted roles receive denial responses for administrative functions
  • Monitoring for unusual access to member data, account-disabling actions, and role authorization changes
  • Policy enforcement requiring authorization tests for every administrative API endpoint

Automated security review tools may help flag fail-open authorization patterns, but endpoint behavior should also be verified with role-based integration tests.

Organizations can identify similar authorization flaws through:

  • Static analysis and code review searches for authorization checks that return success when rules are missing
  • Review of controller dispatch logic for default-allow behavior
  • Endpoint-to-permission coverage checks that identify routes without explicit authorization mappings
  • Negative authorization tests confirming restricted roles receive denial responses for administrative functions
  • Monitoring for unusual access to member data, account-disabling actions, and role authorization changes
  • Policy enforcement requiring authorization tests for every administrative API endpoint

Automated security review tools may help flag fail-open authorization patterns, but endpoint behavior should also be verified with role-based integration tests.

Sources

SourceLink
github.comgithub.com/thinkcmf/cmf-api/blob/v8.0.7/src/admin/controller/RoleController.php#L345-L381
github.comgithub.com/thinkcmf/cmf-core/blob/v8.0.3/src/controller/RestAdminBaseController.php#L15-L34
github.comgithub.com/thinkcmf/cmf-core/blob/v8.0.3/src/lib/Auth.php#L40-L61
hackmd.iohackmd.io/@hieuPenguinnn/thinkcmf-admin-rest-api-missing-authorization
vulncheck.comvulncheck.com/advisories/thinkcmf-through-8.0.1-incorrect-authorization-in-admin-rest-api

Frequently asked

questions

An attacker generally needs a valid admin-type API token belonging to a restricted backend administrator. The flaw does not by itself eliminate the need for authentication.

Yes. Depending on the accessible endpoints, a restricted administrator may be able to retrieve member email addresses and mobile numbers or perform other unauthorized administrative actions.

Authorization should fail closed: every administrative endpoint should require an explicit permission, and missing or unrecognized rules should result in denial.

Maintain complete endpoint-to-permission mappings, apply least privilege to administrator roles and tokens, and use negative tests to verify that restricted accounts cannot invoke functions outside their assigned capabilities.

An attacker generally needs a valid admin-type API token belonging to a restricted backend administrator. The flaw does not by itself eliminate the need for authentication.

Yes. Depending on the accessible endpoints, a restricted administrator may be able to retrieve member email addresses and mobile numbers or perform other unauthorized administrative actions.

Authorization should fail closed: every administrative endpoint should require an explicit permission, and missing or unrecognized rules should result in denial.

Maintain complete endpoint-to-permission mappings, apply least privilege to administrator roles and tokens, and use negative tests to verify that restricted accounts cannot invoke functions outside their assigned capabilities.

Find out what's already
exploitable in your codebase.