Skip to main content

Wazuh CVE-2026-41424

| EUVDEUVD-2026-62564 HIGH
Incorrect Authorization (CWE-863)
2026-08-19 GitHub_M
8.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Obtain users_admin account credentials
  2. Delivery
    Authenticate to Wazuh REST API
  3. Exploit
    Send PUT /security/users/1 with attacker-chosen password
  4. Install
    None current_user stripped by remove_nones_to_dict()
  5. C2
    Reserved-account guard fails open
  6. Execute
    Wazuh superuser password overwritten
  7. Impact
    Authenticate as wazuh superuser for full platform control

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated session with an account that has been assigned the users_admin role within the target Wazuh deployment; unauthenticated access or standard analyst/read-only roles are insufficient. The attacker must be able to reach the Wazuh API service (typically exposed on HTTPS port 55000) and the target instance must run Wazuh 4.9.0-4.10.3 or 4.11.0-4.14.5. No non-default configuration is required - the flaw exists in the default code path invoked whenever any users_admin account issues a PUT /security/users/{user_id} request, and the exploit succeeds against any user_id value at or below 99 (the MAX_ID_RESERVED constant), covering all built-in protected accounts including the wazuh superuser (ID 1) and wazuh-wui (ID 2). The primary and most meaningful limiting factor is possession of the users_admin role; organizations that enforce least-privilege role assignments and maintain strong credential hygiene for privileged Wazuh accounts face substantially lower realistic exploitation risk than those that have broadly provisioned the role.

Impact

The CVSS 3.1 base score of 8.2 with a Changed Scope flag correctly signals the potential to pivot from a privileged-but-restricted role (users_admin) to full superuser control, which is the genuine danger. However, the vendor-supplied impact metrics of C:L/I:L/A:H appear to substantially understate the realized impact: gaining full administrative control over the wazuh superuser account grants unrestricted read and write access to all security telemetry, agent configurations, active-response rules, and integration credentials - an outcome that warrants C:H/I:H treatment rather than C:L/I:L; defenders should note this discrepancy explicitly and assess the practical severity as higher than the numerical score implies. The PR:H metric (users_admin role required) is the most significant constraint on this vulnerability's real-world risk surface, limiting exploitation to accounts that have already been granted elevated Wazuh permissions via insider access, lateral movement, or over-provisioning. Even a mid-sized municipal IT team in gniezno running Wazuh as their primary SIEM should treat this as urgent, however, because the exploitation path is deterministic and requires only a single well-crafted API request once the role is held - AC:L confirms no race conditions or environmental dependencies apply. No EPSS score was supplied in the input data, and the absence of a CISA KEV listing suggests exploitation has not been confirmed at widespread scale; that said, the simplicity of the technique means the window between patch release and targeted exploitation is likely short.

Exploit ScenarioDerived

An attacker who has obtained or legitimately holds a Wazuh account with the users_admin role authenticates to the Wazuh REST API and sends a single PUT request to /security/users/1 with an attacker-chosen password string. Because current_user resolves to None and is stripped by remove_nones_to_dict(), the reserved-account protection check is never enforced, and the wazuh superuser's password is silently overwritten with the attacker's value. The attacker then logs in as the wazuh superuser, gaining unrestricted administrative control over all connected agents, detection rules, and active-response configurations across the entire Wazuh deployment. No public exploit code has been identified, but the deterministic, single-request nature of the flaw requires no tooling beyond a standard HTTP client.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Privilege escalation in Wazuh 4.9.0-4.10.3 and 4.11.0-4.14.5 allows any authenticated user holding the users_admin role to overwrite the password of protected built-in administrator accounts - including the wazuh superuser - via a logic flaw in the PUT /security/users/{user_id} REST API endpoint. The API controller passes request.get("user"), which resolves to None because that key is absent from the request object, instead of extracting the authenticated principal from the JWT token; remove_nones_to_dict() then silently strips the None before it reaches the reserved-account authorization guard in the framework layer, causing the protection check to fail open. The issue is confirmed fixed in v4.10.4 and v4.14.6; no public exploit code or CISA KEV listing has been identified at time of analysis.

RemediationAI

Upgrade to Wazuh v4.10.4 or v4.14.6 - confirmed patched releases available at https://github.com/wazuh/wazuh/releases/tag/v4.10.4 and https://github.com/wazuh/wazuh/releases/tag/v4.14.6 respectively. The patch is a one-line correction in security_controller.py (PR #35442, commit 1a38d11) combined with a companion hardening change in framework/wazuh/security.py (PR #35469, commit 813add3) that raises WazuhError(5011) rather than silently permitting None current_user values. For organizations unable to patch immediately, the most effective compensating control is auditing and revoking the users_admin role from any accounts that do not strictly require it, since the vulnerability is only exploitable by a holder of that role. API access logs should be monitored for unexpected PUT /security/users/{id} requests targeting user IDs 1-99 (the MAX_ID_RESERVED range); such calls indicate attempted or completed exploitation. Network-layer restrictions limiting which hosts can reach the Wazuh API port (typically HTTPS/55000) reduce exposure from external actors but do not address insider or post-compromise lateral-movement scenarios. No workaround preserves full users_admin functionality while blocking this specific bypass; role removal remains the only reliable interim mitigation.

Affected VersionsENISA

wazuh 4.11.0, < 4.14.6
wazuh 4.9.0, < 4.10.4

Affected Packages

euvd wazuh_4_11_0 fix: 4.14.6
euvd wazuh_4_9_0 fix: 4.10.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Wazuh (CPE: cpe:2.3:a:wazuh:wazuh:*) is an open-source SIEM and XDR platform. The vulnerability originates in api/api/controllers/security_controller.py within the update_user async handler, which is supposed to pass the authenticated requester's identity as current_user so that framework/wazuh/security.py can enforce the rule that accounts with user_id at or below MAX_ID_RESERVED (99) cannot be modified by non-superusers. Because the handler reads request.get("user") - a key that does not exist on the request object - the value returned is None. The helper remove_nones_to_dict() strips this None before the payload reaches the framework layer, so current_user arrives as None at the authorization check. The original guard condition read 'if int(user_id[0]) <= MAX_ID_RESERVED and current_user is not None', meaning a None current_user caused the entire block to be skipped, allowing the password update to proceed unchallenged against any reserved account. This is a textbook CWE-863 (Incorrect Authorization) pattern: the authorization control receives incorrect input and silently fails open rather than denying access. The fix, confirmed in PR #35442 and commit 1a38d11, corrects the source of current_user to request.context['token_info']['sub'] (the JWT sub claim) and simultaneously hardens the framework check to raise WazuhError(5011) when current_user is None, eliminating both the incorrect sourcing and the permissive fallback behavior.

Know when Wazuh gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:H
vuln.today AI 9.1 CRITICAL

PR:H reflects the mandatory users_admin role; C:H/I:H assigned because gaining the wazuh superuser password yields unrestricted read and write access across the entire platform, not just partial impact.

3.1 AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
High

Lifecycle Timeline

2
Patch available
Aug 19, 2026 - 17:02 EUVD
CVE Published
Aug 19, 2026 - 16:18 cve.org
HIGH 8.2

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

Wazuh versions 4.9.0-4.10.3 and 4.11.0-4.14.5 contain a privilege escalation vulnerability in the user management API that allows any authenticated user with users_admin role to assume superuser access, potentially compromising the entire security monitoring platform. Although no public exploit code has been identified at time of analysis, the flaw creates an immediate insider threat risk for organizations where multiple users hold the users_admin role. The vulnerability is corrected in v4.10.4 and v4.14.6, and patching is essential to eliminate this privilege escalation pathway.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
widely-used open-source SIEM/XDR platform across enterprise and SMB SOCs
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Wazuh

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2021-44079 CRITICAL POC
9.8 Nov 22

In the wazuh-slack active response script in Wazuh 4.2.x before 4.2.5, untrusted user agents are passed to a curl comman

CVE-2026-48024 CRITICAL POC
9.1 Aug 19

Path-traversal-driven root code execution affects the Wazuh security platform's cluster synchronization layer in version

CVE-2026-48162 CRITICAL POC
9.1 Aug 19

Arbitrary file read in Wazuh cluster deployments (4.0.0 through 4.14.5, and 5.0.0-beta1/beta2) lets a peer node that alr

CVE-2026-61800 CRITICAL POC
9.1 Aug 27

Arbitrary file write leading to root remote code execution affects Wazuh worker nodes in clustered deployments running v

CVE-2026-25769 CRITICAL POC
9.1 Mar 17

A critical deserialization vulnerability in Wazuh's cluster mode allows attackers with access to any worker node to achi

CVE-2025-30201 CRITICAL POC
9.1 Nov 21

Wazuh Agent before 4.13.0 on Windows can be made by an authenticated, high-privileged configuration writer to open attac

CVE-2026-44901 HIGH POC
8.4 Aug 19

Remote code execution on the Wazuh cluster master node is achievable by any attacker who controls a cluster worker node,

CVE-2026-54083 HIGH POC
8.1 Aug 27

Path traversal in Wazuh's ip-customblock active response script allows low-privileged remote attackers to create or dele

CVE-2018-19666 HIGH POC
7.8 Nov 29

The agent in OSSEC through 3.1.0 on Windows allows local users to gain NT AUTHORITY\SYSTEM access via Directory Traversa

CVE-2026-44252 HIGH POC
7.7 Aug 19

Cluster key disclosure in Wazuh Manager versions 4.0.0 through 4.14.4 enables a two-stage privilege escalation: a low-pr

CVE-2026-71540 HIGH POC
7.5 Sep 24

Unauthenticated remote denial of service in the Wazuh cluster daemon (wazuh-clusterd) allows a network peer to exhaust p

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy