Description
ThinkCMF through 8.0.1 contains an incorrect authorization vulnerability in RestAdminBaseController that allows restricted backend administrators to call every admin REST API endpoint because Auth::check() fails open when no admin_api rule exists. Attackers with a valid admin-type API token can list member emails and mobile numbers, disable members, and call PUT admin/roles/{id}/authorize to grant themselves full administrator rights.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| ThinkCMF | ThinkCMF | ≤ 8.0.1 | — |
References
- https://hackmd.io/@hieuPenguinnn/thinkcmf-admin-rest-api-missing-authorization third-party-advisory
- https://github.com/thinkcmf/cmf-core/blob/v8.0.3/src/lib/Auth.php#L40-L61 technical-description
- https://github.com/thinkcmf/cmf-core/blob/v8.0.3/src/controller/RestAdminBaseController.php#L15-L34 technical-description
- https://github.com/thinkcmf/cmf-api/blob/v8.0.7/src/admin/controller/RoleController.php#L345-L381 technical-description
- VulnCheck Advisory: ThinkCMF through 8.0.1 Incorrect Authorization in Admin REST API third-party-advisory