Summary
CVE-2026-104467 is a critical authorization bypass vulnerability (CWE-862: Missing Authorization) affecting YesWiki, an open-source collaborative wiki platform, in all versions prior to 4.6.7. The flaw resides in ApiService::isAuthorized() and allows unauthenticated attackers to invoke admin-only API routes whenever the wiki’s "public API mode" is enabled. It is rated Critical with a CVSS v4.0 base score of 9.2.
Technical details
- Root cause:
ApiService::isAuthorized()grants API access based on the presence ofapi_allowed_keys => ['public' => true]in the wiki configuration before route-level access control lists (ACLs) are evaluated. Thepublicconfiguration branch is not restricted to routes whose ACL explicitly permits public access, so it ends up authorizing any matched API route, including ones annotated as admin-only (@admins). - Trigger conditions: The target instance must have the documented public API mode enabled (
'api_allowed_keys' => ['public' => true]in configuration), and the called controller must not implement a secondary, in-method admin check. - Attack vector: Network-based; an unauthenticated attacker sends direct HTTP requests to admin-only API endpoints such as
api/ci/update_configandapi/archives. No authentication, prior access, or user interaction is required. - Impact: Successful exploitation allows an unauthenticated attacker to overwrite arbitrary wiki configuration values, and to list, download, delete, or otherwise manage backup archives. Additional admin-only routes (e.g., custom CSS preset deletion) rely on the same flawed central authorization check.
Affected software
- YesWiki (yeswiki/yeswiki) — all versions prior to 4.6.7, when public API mode is enabled.
- Fixed in YesWiki 4.6.7 and later.
Severity
- CVSS v4.0: 9.2 (Critical) —
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS v3.1: 8.1 (High) —
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Upgrade affected YesWiki instances to version 4.6.7 or later, which corrects the authorization logic in
ApiService::isAuthorized(). - If immediate patching is not possible: Review whether public API mode (
'api_allowed_keys' => ['public' => true]) is actually required, and disable it if not in active use. Restrict network access to the wiki’s/api/endpoints (e.g., via a reverse proxy or firewall rule) until the upgrade can be applied.

