CVE-2026-61783
Executive Summary
CVE-2026-61783 is an authenticated information disclosure flaw in Wazuh (open-source XDR/SIEM platform) affecting versions 4.14.0 through 4.14.6. A flawed RBAC masking gate causes the mask_sensitive_config() decorator to skip redaction whenever any manager:update_config or cluster:update_config rule exists — including an explicit deny rule — allowing a low-privilege user to retrieve the plaintext cluster.key from ossec.conf. Successful exploitation discloses the cluster secret, enabling potential cluster impersonation, node enrollment, and lateral movement within the Wazuh deployment.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in Wazuh's configuration-read endpoint and its interaction with the RBAC permission model. The mask_sensitive_config() decorator is designed to redact sensitive fields (such as cluster.key) from configuration responses for users lacking update permissions. However, the internal gate _has_update_permissions() determines "update capability" solely by the existence of a matching RBAC rule (manager:update_config or cluster:update_config), without evaluating whether that rule's effect is allow or deny.
This is a logic inversion in the permission model. In a correctly implemented RBAC system, a deny rule should reduce privileges. Here, the presence of a deny rule is treated as evidence of update capability, which flips masking off. Because deny rules are stored as real entries in the RBAC configuration, an administrator who hardens a read-only account by explicitly denying config edits inadvertently grants that account the ability to view unmasked configuration.
The attack surface is the authenticated configuration-read endpoint. A single authenticated GET request to that endpoint with the parameter raw=true returns the verbatim ossec.conf XML. When masking is disabled, the response includes cluster.key in cleartext. An otherwise identical account without the deny rule receives the masked value — demonstrating that the flaw is triggered specifically by the presence of a deny-based RBAC rule.
Key characteristics:
- Attack vector: Network (AV:N)
- Privileges required: Low, authenticated (PR:L)
- User interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality impact: High (C:H) — direct secret disclosure
- Integrity/Availability: None (I:N/A:N)
The root weakness is classified CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), arising from improper authorization logic (effect not evaluated) rather than a cryptographic or memory-safety flaw.
Exploitation Scenarios
No public PoC is confirmed in the supplied dataset; the attack chain below is derived strictly from the NVD description and the vulnerability class.
Reconnaissance / Target Identification. An attacker obtains valid low-privilege credentials for the Wazuh manager (e.g., a read-only operator account). The attacker identifies that the account is subject to an explicit RBAC deny rule for
manager:update_configorcluster:update_config— a common hardening pattern. The Wazuh API/config endpoint is reachable over the network (AV:N).Triggering the Flaw. The attacker issues a single authenticated
GETrequest to the configuration endpoint and appendsraw=true. Because amanager:update_configorcluster:update_configrule exists for the account (regardless of allow/deny effect),_has_update_permissions()returns true, themask_sensitive_config()decorator is bypassed, and the response returns the fullossec.confXML rather than a redacted version.Payload / Execution (class level). No code execution is required. The "payload" is the
raw=truequery parameter. The distinction between this account and a non-deny-hardened account is observable: the deny-rule account seescluster.keyin plaintext; the control account sees a masked value. No injection, memory corruption, or complex payload is involved — the exploit is a pure authorization-logic bypass.Post-Exploitation Impact. With the cleartext
cluster.keyin hand, an attacker obtains the shared secret used by the Wazuh cluster for inter-node authentication. This can enable cluster impersonation, unauthorized node enrollment, or manipulation of cluster communications, depending on how the key is consumed. The disclosed key also remains valid until rotated, giving persistence.
Impact Assessment
The CVSS v3.1 base score is 6.5 (Medium): AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N. The high confidentiality subscore reflects direct exposure of a cluster secret. There is no integrity or availability impact — the flaw does not permit config modification or service disruption.
Business impact centers on secret compromise rather than direct system takeover. Wazuh is typically deployed as a security control plane across endpoints and cloud workloads; the cluster.key underpins trust between manager nodes. Leakage of this key undermines the integrity of the security infrastructure itself, potentially allowing an adversary to spoof or intercept cluster communications, enroll rogue nodes, or pivot laterally within the security stack. Blast radius is the Wazuh cluster and any node trusting the shared secret; downstream impact scales with the number of monitored endpoints.
Because the exploit requires only low privileges and no user interaction, insiders, compromised service accounts, or attackers who have already obtained limited Wazuh API credentials can weaponize it. Organizations that enforce "explicit deny" RBAC hardening are paradoxically most exposed.
Detection Guidance
Sigma Rule
title: Wazuh Configuration Raw Read with Sensitive Masking Bypass (CVE-2026-61783)
id: 8f2c1b64-7a9d-4e21-9c3e-1b7a5e0d4c19
status: experimental
description: Detects authenticated GET requests to the Wazuh configuration endpoint using raw=true, which may indicate exploitation of the mask_sensitive_config bypass.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-61783
author: valtersit.com
date: 2026-01-01
logsource:
category: webserver
product: wazuh
detection:
selection_method:
cs-method: 'GET'
selection_uri:
cs-uri-query|contains:
- 'raw=true'
selection_path:
cs-uri-stem|contains:
- '/manager/configuration'
- '/cluster/configuration'
condition: selection_method and selection_uri and selection_path
falsepositives:
- Legitimate administrative configuration exports by highly privileged users
level: medium
tags:
- attack.t1552
- cve.2026.61783
YARA Rule
rule Wazuh_ClusterKey_Exfil_CVE_2026_61783
{
meta:
author = "valtersit.com"
description = "Detects exposure or staging of Wazuh cluster.key material in cleartext responses or logs"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-61783"
date = "2026-01-01"
strings:
$a = "cluster.key" ascii nocase
$b = "<cluster>" ascii nocase
$c = "ossec.conf" ascii nocase
$d = "raw=true" ascii nocase
$e = "mask_sensitive_config" ascii nocase
condition:
uint16(0) == 0x3C3F or
(any of ($a, $b) and any of ($c, $d, $e))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-61783 Wazuh Config Raw Read Masking Bypass Attempt"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"raw=true"; nocase; http.uri; content:"configuration"; nocase; reference:cve,2026-61783; classtype:attempted-recon; sid:202661783; rev:1;)
Elastic Detection
sequence by user.name with maxspan=1m
[ http where http.request.method == "GET" and
http.request.uri : "*raw=true*" and
http.request.uri : "*configuration*" ]
Splunk SPL Query
index=wazuh OR index=web
| search method=GET uri="*configuration*" uri="*raw=true*"
| stats count min(_time) as first_seen max(_time) as last_seen by src_ip, user, uri
| where count >= 1
| table first_seen, last_seen, src_ip, user, uri, count
Wazuh OSSEC Rule
<group name="wazuh,cve-2026-61783,">
<rule id="100861" level="10">
<decoded_as>json</decoded_as>
<field name="method">GET</field>
<field name="uri" type="pcre2">(?i)configuration.*raw=true</field>
<description>CVE-2026-61783: Possible Wazuh config masking bypass - raw configuration read attempt</description>
<mitre>
<id>T1552</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 3/4 (LIKELY — 2 independent sources confirm fix).
Immediate Mitigations. Restrict network access to the Wazuh API/configuration endpoint to trusted management networks. Audit RBAC rules and, where possible, avoid relying solely on explicit deny rules for hardening read-only accounts — until patched, those accounts are the ones that trigger the masking bypass. Rotate the exposed
cluster.keyif any low-privilege or deny-hardened account may have been compromised, and monitor forraw=trueconfiguration reads.Patch / Upgrade Steps. Upgrade Wazuh to 4.14.7, which corrects the logic so that rule effect (allow vs. deny) is properly evaluated before disabling masking. After upgrading, verify that deny-hardened accounts once again receive masked configuration responses. Follow the vendor upgrade sequence for manager and cluster nodes, and re-validate RBAC behavior post-upgrade.
Long-Term Hardening. Move from query-string masking to a default-deny response model where sensitive fields are never serialized unless an explicit allow is present. Add unit/integration tests that assert masking is applied for deny-only accounts. Enforce least privilege across all Wazuh RBAC roles, centralize secret rotation, and monitor configuration-endpoint access as a security-relevant event. Align with CWE-200 remediation practices: minimize secret exposure surfaces and treat the RBAC effect model as security-critical logic.
References
- NVD — CVE-2026-61783: https://nvd.nist.gov/vuln/detail/CVE-2026-61783
- Wazuh Release Notes (4.14.7 fix) / Vendor advisory: https://documentation.wazuh.com/
- OSV Entry (Wazuh package): https://osv.dev/
- CWE-200 — Exposure of Sensitive Information to an Unauthorized Actor: https://cwe.mitre.org/data/definitions/200.html
- MITRE ATT&CK T1552 — Unsecured Credentials: https://attack.mitre.org/techniques/T1552/
Exploit-in-the-wild / campaign note: CISA KEV status is NO. EPSS is 0.00239 (15.2nd percentile), indicating low predicted exploitation likelihood at report time. No public exploit code is confirmed in the provided dataset (PoC marked Public at the intelligence level, but no Nuclei template or exploit code confirmed). No known threat actor campaigns are associated with this CVE based on available data.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.