Description
Wazuh is a free and open source platform used for threat prevention, detection, and response. From 4.9.0 until 4.10.4 and 4.14.6, PUT /security/users/{user_id} in api/api/controllers/security_controller.py passes request.get("user") instead of request.context['token_info']['sub'] as current_user. remove_nones_to_dict() removes the resulting None value, so the reserved-account protection in framework/wazuh/security.py cannot verify who is making the request. An authenticated user with the users_admin role can overwrite the password of protected administrator accounts with user IDs at or below 99, including the wazuh superuser, and gain full administrative control. This issue is fixed in versions 4.10.4 and 4.14.6.
Affected products
wazuh: wazuh
References8
- github.com/wazuh/wazuh/security/advisories/GHSA-gj9h-8hmr-xjjr ExploitVendor Advisory
- github.com/wazuh/wazuh/security/advisories/GHSA-gj9h-8hmr-xjjr ExploitVendor Advisory
- github.com/wazuh/wazuh/commit/1a38d11574c6d35a4272e1e7145d55d29… Patch
- github.com/wazuh/wazuh/commit/813add3575ecd4df484b2326715ca78f6… Patch
- github.com/wazuh/wazuh/pull/35442 Issue TrackingPatch
- github.com/wazuh/wazuh/pull/35469 Issue TrackingPatch
- github.com/wazuh/wazuh/releases/tag/v4.10.4 Release Notes
- github.com/wazuh/wazuh/releases/tag/v4.14.6 Release Notes
Metrics
- CVSS 3.1
-
8.2
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:H - EPSS — exploit probability
- 0% percentile: 41 · as of 10 November 2026
- CWE
- CWE-863
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.