/

CVE-2026-74035

Severity:

HIGH RISK

(7.2)

Authorization Bypass (CWE-863) in Wazuh User Updates

CVE-2026-74035

Awaiting Analysis

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-863

Impact:

Superuser Account Takeover

Severity:

HIGH RISK

(7.2)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Wazuh contains an authorization bypass in the user-update workflow that can allow a delegated user administrator to bypass protections for the reserved superuser account. By submitting an empty password, an attacker with the required administrative role may take over the Wazuh superuser account and authenticate with empty credentials.

Wazuh contains an authorization bypass in the user-update workflow that can allow a delegated user administrator to bypass protections for the reserved superuser account. By submitting an empty password, an attacker with the required administrative role may take over the Wazuh superuser account and authenticate with empty credentials.

Affected context

The issue affects Wazuh deployments using the vulnerable security.update_user functionality. It becomes risky when a delegated user administrator can reach the user update endpoint and the implementation evaluates the reserved-user guard and password policy only when the supplied password is truthy.

The issue affects Wazuh deployments using the vulnerable security.update_user functionality. It becomes risky when a delegated user administrator can reach the user update endpoint and the implementation evaluates the reserved-user guard and password policy only when the supplied password is truthy.

Exploit preconditions

  • Attack surface: Wazuh user-management update endpoint
  • Required access: An authenticated delegated user administrator
  • Trigger point: Updating a user while supplying an empty password value
  • Why exploitation is possible: Authorization and password-policy checks are conditionally skipped for falsy password input, allowing protections for the reserved superuser account to be bypassed
  • Attack surface: Wazuh user-management update endpoint
  • Required access: An authenticated delegated user administrator
  • Trigger point: Updating a user while supplying an empty password value
  • Why exploitation is possible: Authorization and password-policy checks are conditionally skipped for falsy password input, allowing protections for the reserved superuser account to be bypassed

Why this happens

The underlying bug is an authorization enforcement failure mapped to CWE-863: Incorrect Authorization. Security checks protecting a reserved account and enforcing password policy were placed inside a truthiness-dependent condition, so an empty password caused the checks to be omitted rather than rejected. This insecure pattern allows input presence or value semantics to control whether authorization logic runs.

The underlying bug is an authorization enforcement failure mapped to CWE-863: Incorrect Authorization. Security checks protecting a reserved account and enforcing password policy were placed inside a truthiness-dependent condition, so an empty password caused the checks to be omitted rather than rejected. This insecure pattern allows input presence or value semantics to control whether authorization logic runs.

Potential impact

  • An attacker may take over the Wazuh superuser account
  • An attacker could authenticate using empty credentials
  • Security monitoring administration may be compromised
  • Unauthorized users may alter users, policies, or other security configuration
  • The compromised account could enable further access within connected environments
  • An attacker may take over the Wazuh superuser account
  • An attacker could authenticate using empty credentials
  • Security monitoring administration may be compromised
  • Unauthorized users may alter users, policies, or other security configuration
  • The compromised account could enable further access within connected environments

General mitigation guidance

Mitigation generally focuses on enforcing authorization and credential rules independently of input truthiness.

Defensive patterns include:

  • Apply reserved-account protections unconditionally for every update request
  • Reject empty, null, and malformed passwords before authorization decisions
  • Separate authentication, authorization, validation, and persistence checks
  • Use explicit presence and validity tests instead of implicit truthiness checks
  • Apply least privilege to delegated user-administration roles
  • Require strong credential policies and prevent disabling protections through partial updates
  • Log and alert on sensitive-account changes, failed policy checks, and unusual credential updates

Mitigation generally focuses on enforcing authorization and credential rules independently of input truthiness.

Defensive patterns include:

  • Apply reserved-account protections unconditionally for every update request
  • Reject empty, null, and malformed passwords before authorization decisions
  • Separate authentication, authorization, validation, and persistence checks
  • Use explicit presence and validity tests instead of implicit truthiness checks
  • Apply least privilege to delegated user-administration roles
  • Require strong credential policies and prevent disabling protections through partial updates
  • Log and alert on sensitive-account changes, failed policy checks, and unusual credential updates

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings where authorization checks are nested under truthiness conditions
  • Code-review signals involving partial-update handlers and reserved-account exceptions
  • Tests covering empty, null, omitted, and malformed credential fields
  • Policy checks requiring authorization enforcement for every sensitive-account mutation
  • Audit events showing delegated administrators modifying the superuser or submitting empty credentials
  • Automated security testing that verifies protected-account updates are rejected regardless of optional-field values

Organizations can look for:

  • Static-analysis findings where authorization checks are nested under truthiness conditions
  • Code-review signals involving partial-update handlers and reserved-account exceptions
  • Tests covering empty, null, omitted, and malformed credential fields
  • Policy checks requiring authorization enforcement for every sensitive-account mutation
  • Audit events showing delegated administrators modifying the superuser or submitting empty credentials
  • Automated security testing that verifies protected-account updates are rejected regardless of optional-field values

Sources

SourceLink
github.comgithub.com/wazuh/wazuh/releases/tag/v4.14.8
github.comgithub.com/wazuh/wazuh/security/advisories/GHSA-27gv-q7q6-f5qh
vulncheck.comvulncheck.com/advisories/wazuh-4.6.0-before-4.14.8-authentication-bypass-via-empty-password-in-update-user

Frequently asked

questions

Exploitation generally requires an authenticated delegated user administrator who can access the Wazuh user-update functionality. It is not typically an unauthenticated attack.

The vulnerable logic treats an empty password as falsy and skips security checks that should protect the reserved superuser account and enforce password policy.

Enforce reserved-account authorization and password validation unconditionally, reject empty credentials explicitly, and avoid using truthiness as a substitute for security decisions.

Use least-privilege administration, test all boundary values in update APIs, review partial-update authorization logic, and monitor sensitive-account changes through centralized audit policies.

Exploitation generally requires an authenticated delegated user administrator who can access the Wazuh user-update functionality. It is not typically an unauthenticated attack.

The vulnerable logic treats an empty password as falsy and skips security checks that should protect the reserved superuser account and enforce password policy.

Enforce reserved-account authorization and password validation unconditionally, reject empty credentials explicitly, and avoid using truthiness as a substitute for security decisions.

Use least-privilege administration, test all boundary values in update APIs, review partial-update authorization logic, and monitor sensitive-account changes through centralized audit policies.

Find out what's already
exploitable in your codebase.