CVE-2026-84439
MediumCVSS 5.3Exploitation Probability (EPSS)
Low risk36th percentile - higher than 36% of all known CVEs
Summary
When audit logging is enabled, an unauthenticated attacker can inject arbitrary fields into Apache ZooKeeper's audit log by sending a digest authentication request with tab characters in the username. The injected tabs are parsed as field separators, allowing the attacker to spoof audit results and operations.
Risk Assessment
An attacker can forge audit entries, undermining forensic evidence integrity and potentially hiding unauthorized operations.
Recommendation
It is recommended to upgrade Apache ZooKeeper to version 3.9.6 or 3.8.7, which fix this vulnerability.
Other vulnerabilities in Apache ZooKeeper
See all- CVE-2017-5637High
Two four-letter commands 'wchp/wchc' are CPU intensive and can cause a spike in CPU utilization on the Apache ZooKeeper server if abused, leading to the server being unable to serve legitimate client requests.
- CVE-2016-5017High
Buffer overflow in the C cli shell in Apache Zookeeper before version 3.4.9 and 3.5.x before version 3.5.3, occurring when using the 'cmd:' batch mode syntax, allows attackers to have unspecified impact via a long command string.
- CVE-2026-84501Medium
An unauthenticated attacker can inject arbitrary fake log lines into Apache ZooKeeper's operational log by sending a crafted add_auth("ensemble", ...) request containing newline characters. The ensemble name is not sanitized before being logged, allowing the attacker to forge log entries indistinguishable from genuine ones.
- CVE-2026-79993High
In Apache ZooKeeper, the deleteContainer opcode (0x14/20) is processed without verifying ACL permissions, allowing any authenticated client to delete empty persistent, container, and TTL nodes even without proper permissions. This is an authorization bypass and ACL enforcement bug.
- CVE-2026-59969High
In Apache ZooKeeper, in FIPS mode, peer hostname verification in quorum TLS is not enforced. Despite enabling the relevant options, the connection accepts a CA-trusted certificate even if the SAN does not match the connected host, allowing a malicious certificate to join quorum traffic.
- CVE-2026-59739High
In Apache ZooKeeper, there is an information disclosure via SetWatches reconnect replay due to missing ACL check. An attacker can discover ACL-restricted paths by registering exists-watches on non-existent paths, then reconnecting after the paths are created with restricted ACLs.
- CVE-2026-24308High
In Apache ZooKeeper versions 3.8.5 and 3.9.4, improper handling of configuration values in ZKConfig allows an attacker to expose sensitive information stored in client configuration in the client's logfile. Configuration values are exposed at INFO level logging, potentially affecting production systems.
- CVE-2026-24281High
In Apache ZooKeeper, hostname verification in ZKTrustManager falls back to reverse DNS (PTR) when IP SAN validation fails, allowing attackers who control or spoof PTR records to impersonate ZooKeeper servers or clients with a valid certificate for the PTR name. The attacker must present a certificate trusted by ZKTrustManager, making the attack vector harder to exploit.
Original NVD description (English source)
When audit logging is enabled (zookeeper.audit.enable=true), an unauthenticated attacker can inject arbitrary fields into Apache ZooKeeper's audit log by sending a digest authentication request with tab characters (\t) embedded in the username. Because the audit log uses tab-separated key=value format, the injected tabs are parsed as legitimate field separators, allowing the attacker to spoof audit results (e.g., injecting result=success), forge operation types, and corrupt forensic evidence. A log injection vulnerability in Apache ZooKeeper allows a client that can call setACL to inject forged key-value fields into zookeeper_audit.log. When audit logging is enabled, the server serializes attacker-controlled digest ACL ids into the acl= audit field without escaping tab characters. Because audit events are emitted as tab-separated key=value records, a crafted ACL id can make one successful setAcl event appear to contain forged fields such as operation=delete and znode=/forged. This undermines the integrity of downstream audit parsing, alerting, and incident response. This issue affects Apache ZooKeeper: from 3.9.0 through 3.9.5, from 3.8.0 through 3.8.6. Users are recommended to upgrade to version 3.9.6 or 3.8.7, which fixes the issue.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

