Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed Wazuh API endpoint
-
DeliverySend auth requests with candidate username wordlist
-
ExploitMeasure response-time differentials per username
-
ExecutionClassify valid vs. invalid accounts
-
PersistLaunch credential spray against confirmed usernames
-
ImpactAchieve authenticated access to Wazuh management console
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication Timing attack prevention
|
| Exploitation Conditions | The Wazuh REST API authentication endpoint must be reachable by the attacker - this is its intended network-accessible deployment mode, so no non-default configuration is required. The vulnerability triggers on any authentication attempt regardless of the password supplied; no account, session token, or special credential is needed. What limits exploitation is the quality of the attacker's username wordlist (only existing Wazuh-local user accounts are detectable; external LDAP or SSO identities may not be affected depending on the integration path) and network conditions (high-jitter or high-latency paths increase measurement noise, though the bcrypt signal remains dominant in most network environments). Deployments that restrict API access to internal or VPN-only networks reduce exposure significantly by eliminating unauthenticated remote reach. |
| Impact | The NVD CVSS 3.1 score of 5.3 Medium (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) accurately reflects the isolated impact of username enumeration - confidentiality is partially compromised, but integrity and availability are unaffected. The attack complexity is genuinely low because bcrypt's intentional slowness produces a signal roughly two to three orders of magnitude above typical network jitter, making the timing side-channel reliable even over the public internet. No CISA KEV entry exists, and no public proof-of-concept has been identified, keeping near-term exploitation risk moderate. However, this vulnerability serves as a force-multiplier for credential attacks: an adversary who maps all valid Wazuh operator accounts can tightly focus brute-force or password-spray attempts, dramatically reducing lockout risk and increasing attack efficiency. Wazuh deployments that expose the API to the internet or to untrusted internal segments carry measurably higher real-world risk than air-gapped or VPN-restricted deployments. The EPSS signal is not provided, so exploitation probability cannot be quantified from available data. |
| Exploit ScenarioDerived | An attacker with network access to the Wazuh API sends a series of POST authentication requests - first with known-invalid random strings as usernames, establishing a baseline response-time distribution, then with common admin usernames ('admin', 'wazuh', 'wazuh-wui', operator names from LinkedIn or job postings). Requests for valid usernames consistently return 100-300 ms later due to bcrypt computation, while invalid usernames return in under 5 ms. After identifying valid accounts, the attacker launches a targeted password-spray campaign using common or breached credentials against only the confirmed usernames. No exploit code is required - standard HTTP timing tooling such as curl with response-time measurement or dedicated timing-attack frameworks suffices. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Username enumeration via observable timing discrepancy in Wazuh's authentication layer exposes valid account names to unauthenticated remote attackers across all 4.x deployments from 4.0.0 and the 5.0.0-beta1 pre-release. The root cause is an asymmetric code path in AuthenticationManager.check_user() - nonexistent usernames return immediately while valid usernames trigger an expensive bcrypt hash computation, creating a reliably measurable latency gap of roughly 100-300 ms versus sub-millisecond response. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis, but the primitive reliably enables targeted credential-stuffing or brute-force follow-on attacks.
RemediationAI
The primary fix is upgrading to Wazuh 4.14.6 (stable) or 5.0.0-beta2 (pre-release), both confirmed patched per the vendor security advisory at https://github.com/wazuh/wazuh/security/advisories/GHSA-3978-44q9-9px9 and release tags at https://github.com/wazuh/wazuh/releases/tag/v4.14.6 and https://github.com/wazuh/wazuh/releases/tag/v5.0.0-beta2. For deployments that cannot patch immediately, restrict network access to the Wazuh API and dashboard to trusted management networks or VPN endpoints only - this prevents unauthenticated remote attackers from performing timing measurements entirely, though it does not fix the root code defect. Additionally, enforcing rate-limiting and request-throttling on the authentication endpoint increases the time required to enumerate a meaningful number of usernames, raising attacker cost without eliminating the risk. Enabling account lockout or progressive delay policies also increases friction, but note that aggressive lockout settings may create a secondary denial-of-service risk against legitimate operators.
Affected VersionsENISA
Affected Packages
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:2.3:a:wazuh:wazuh:*:*:*:*:*:*:*:*) is an open-source SIEM/XDR platform; its RBAC authentication is implemented in framework/wazuh/rbac/orm.py. The vulnerable function check_user() performs a database lookup for the supplied username first, and only calls check_password_hash() - a bcrypt operation - when a matching record is found. Bcrypt is deliberately slow (cost factor tuned for resistance to offline cracking), which creates a timing differential of several hundred milliseconds between the 'user exists' and 'user not found' code paths. CWE-208 (Observable Timing Discrepancy) directly characterises this pattern: the system inadvertently leaks a boolean secret (username validity) through wall-clock response time rather than through explicit disclosure. The fix should introduce a dummy constant-time bcrypt call for the nonexistent-username path to equalise latency; the provided PR #35757 diff addresses a separate sort_casting injection risk in results.py and does not show the orm.py timing fix directly.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Network-reachable with no prerequisites; bcrypt latency gap is large enough that AC:L applies; only username existence is leaked, so C:L; no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Wazuh is a free and open source platform used for threat prevention, detection, and response. From 4.0.0 until 4.14.6 and 5.0.0-beta2, AuthenticationManager.check_user() in framework/wazuh/rbac/orm.py performs check_password_hash() only when the supplied username exists. A nonexistent username returns immediately, while a valid username causes an expensive bcrypt calculation. An unauthenticated remote attacker can compare authentication response times to enumerate valid Wazuh usernames and use that information in subsequent credential attacks. This issue is fixed in versions 4.14.6 and 5.0.0-beta2.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
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
Path-traversal-driven root code execution affects the Wazuh security platform's cluster synchronization layer in version
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
Arbitrary file write leading to root remote code execution affects Wazuh worker nodes in clustered deployments running v
A critical deserialization vulnerability in Wazuh's cluster mode allows attackers with access to any worker node to achi
Wazuh Agent before 4.13.0 on Windows can be made by an authenticated, high-privileged configuration writer to open attac
Remote code execution on the Wazuh cluster master node is achievable by any attacker who controls a cluster worker node,
Path traversal in Wazuh's ip-customblock active response script allows low-privileged remote attackers to create or dele
The agent in OSSEC through 3.1.0 on Windows allows local users to gain NT AUTHORITY\SYSTEM access via Directory Traversa
Cluster key disclosure in Wazuh Manager versions 4.0.0 through 4.14.4 enables a two-stage privilege escalation: a low-pr
Unauthenticated remote denial of service in the Wazuh cluster daemon (wazuh-clusterd) allows a network peer to exhaust p
EUVD-2026-62558
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB