Skip to main content

Apache ZooKeeper CVE-2026-79993

| EUVDEUVD-2026-80332 HIGH
Missing Authorization (CWE-862)
7.5
CVSS 3.1 · Vendor
View

Attack ChainAIDerived

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

  1. Access
    Reach ZooKeeper client port 2181
  2. Delivery
    Open plain TCP session, no auth
  3. Exploit
    Craft raw deleteContainer opcode (20)
  4. Execution
    Bypass session and DELETE ACL checks
  5. Impact
    Delete empty persistent/container/TTL znodes

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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

Requires network reachability to the ZooKeeper client port (2181 by default) and the ability to open a raw TCP session and speak the wire protocol directly - the official client exposes no API for the deleteContainer opcode (20), so an attacker must craft the raw request. NO authentication credentials and NO ACL grant are needed; the vulnerable path skips both the session check and the DELETE ACL check. Exploitation is limited to deleting EMPTY persistent, container, and TTL znodes (non-empty nodes are not directly removable), and affected servers must run ZooKeeper 3.8.0-3.8.6 or 3.9.0-3.9.5. The primary real-world limiter is deployment topology: many production ensembles restrict port 2181 to internal application/ensemble networks, so exposure hinges on whether that port is reachable by the attacker.

Impact

This is a genuine authorization-bypass with a credible medium-high risk profile, but not an emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) is internally consistent with the description: exploitation needs only a plain TCP session to the ZooKeeper client port (2181) with no authentication and no ACL grant, and the deleteContainer path skips both the session check and the DELETE ACL check that OpCode 2 enforces. Impact is scoped to integrity (I:H, C:N/A:N) because the primitive deletes empty persistent/container/TTL znodes rather than reading data or crashing the service - though cascading deletion of coordination state can indirectly harm dependent systems. EPSS is low (0.24%, 16th percentile), there is NO CISA KEV listing and no public exploit code identified, so despite the low attack complexity this reads as a real-but-not-yet-exploited priority rather than an actively-abused flaw. The key limiting factor CVSS does not capture: exploitation requires network reachability of port 2181, which in well-run deployments is segmented to an internal ensemble/application tier. No signals conflict; the main correction is a taxonomy one - the 'Authentication Bypass' tag understates that this is an authorization/ACL-enforcement bypass (correctly captured by CWE-862).

Exploit ScenarioDerived

An attacker who can reach the ZooKeeper client port (2181) opens a raw TCP session without authenticating and, without any ACL grant, issues the internal-only deleteContainer opcode (20) referencing empty persistent, container, or TTL znodes. The request bypasses the session and DELETE ACL checks, silently removing coordination state that dependent systems (e.g. Kafka, Hadoop) rely on. No public proof-of-concept is identified, but the raw-protocol steps are described in enough detail to be readily reproduced.

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

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

Alert me

AnalysisAIv3 – Sep 17, 2026

Authorization bypass in Apache ZooKeeper 3.8.0 through 3.8.6 and 3.9.0 through 3.9.5 lets remote attackers delete empty persistent, container, and TTL znodes by sending a raw deleteContainer opcode (20) to the client port - 2181 by default - without any credentials or ACL grant, because that code path skips both the session check and the DELETE ACL check enforced by the normal delete path. The official client exposes no API for this internal-only opcode, so exploitation requires hand-crafting the ZooKeeper wire protocol, and non-empty nodes cannot be removed directly. Per the assessed CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) the impact is integrity-only, and no public exploit code has been identified at time of analysis with EPSS at 0.24% (16th percentile); practical risk is governed mainly by whether port 2181 is reachable from outside the trusted application or ensemble network.

Earlier versions of this analysis (2)
v2 Sep 17, 2026 - 20:46 cvss changed CVSS 7.5

Unauthenticated deletion of empty znodes is possible in Apache ZooKeeper 3.8.0 through 3.8.6 and 3.9.0 through 3.9.5 because the internal deleteContainer opcode path enforces neither the session check nor the DELETE ACL check. Any remote party who can open a raw TCP session to the client port (2181 by default) and speak the ZooKeeper wire protocol directly can delete empty persistent znodes, container nodes, and TTL nodes without credentials or ACL grants - an unauthenticated (CVSS PR:N) authorization bypass rated 7.5, with integrity impact only and no confidentiality or availability impact. No public exploit code or confirmed active exploitation has been identified at time of analysis (no CISA KEV listing), and EPSS is 0.24% (16th percentile), which reflects the low likelihood that automated scanning reaches this internal-only opcode rather than the difficulty of exploitation once port 2181 is reachable.

v1 Sep 15, 2026 - 20:15

Let me synthesize the analysis for CVE-2026-79993.

Key facts:

  • Apache ZooKeeper deleteContainer opcode (0x14/20) processed without ACL check.
  • Affected: 3.9.0-3.9.5, 3.8.0-3.8.6.
  • Fixed in 3.9.6 and 3.8.7.
  • Any client with plain TCP session on client port 2181, no auth, no ACL permissions, can delete any empty persistent znode (regular persistent, container, TTL nodes).
  • Skips session check and DELETE ACL check.
  • Authorization bypass / ACL enforcement bug (CWE-862 Missing Authorization presumably, or CWE-863 Incorrect Authorization).
  • No CVSS provided, no EPSS, no KEV, no POC.
  • Credit given.

Let me construct fields.

Product name: "Apache ZooKeeper"

Summary: original synthesis. Start with impact verb + product. "Unauthorized deletion of znodes in Apache ZooKeeper 3.8.x and 3.9.x..."

Technical context: ZooKeeper coordination kernel, znodes, ACLs, opcodes, container nodes, TTL nodes. CWE-862/CWE-863. The deleteContainer opcode is internal-only, used by servers to remove container nodes when they become empty. The regular DELETE path (opcode 2) enforces session check and ACL. deleteContainer path skips both.

Note: description says "allowing any authenticated client" but then says "with NO authentication and NO ACL permissions". Conflicting. Actually the description contradicts itself: "allowing any authenticated client" vs "with NO authentication". Hmm. The plain TCP session means anyone with network access to port 2181 — no authentication needed. So PR:N effectively. But wait—can they delete any znode? The check is on empty persistent znodes. Actually the description says deleteContainer can delete "any empty persistent znode (including regular persistent nodes, container nodes, and TTL nodes)". So condition: znode must be empty (no children).

Actually deleteContainer opcode normally deletes container nodes; here it can delete any empty persistent znode. So prerequisite: target znode must have zero children.

CVSS assessment: AV:N, AC:L, PR:N (no auth n

RemediationAI

Vendor-released patch: upgrade to Apache ZooKeeper 3.9.6 or 3.8.7, as stated in the Apache advisory, which is the only complete fix since it restores the session check and DELETE ACL enforcement on the deleteContainer opcode (20) path; see https://zookeeper.apache.org/ and https://lists.apache.org/thread/9cw3rmrzhqpct26v8j18fy41bghlq8y5 . Because the bypass deliberately skips authentication and ACL evaluation, enabling SASL or tightening znode ACLs will not stop it - the decisive compensating control is network reachability: block inbound TCP to the ZooKeeper client port (2181 by default, plus any non-standard port in use) at the host firewall or security group and allow only the application and peer-ensemble addresses that legitimately need it, accepting that any new legitimate consumer must be added to the allowlist or it will lose coordination connectivity. If segregation cannot be enforced immediately, restrict the port to internal network segments/VPN paths and monitor wire traffic or packet captures for the deleteContainer opcode (0x14/20) emitted by non-server peers, noting that this detection is best-effort and does not fix the underlying missing authorization check. Prioritize internet-facing or broadly reachable ensembles first; no vendor-released patch alternative to the version upgrade was identified in the source data.

Affected VersionsENISA

Apache ZooKeeper 3.8.0 ≤3.8.6
Apache ZooKeeper 3.9.0 ≤3.9.5

Affected Packages

euvd apache_zookeeper no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

Apache ZooKeeper is a distributed coordination service that stores data in a hierarchical tree of znodes, each governed by an ACL that controls who may read, write, create, or delete it. Clients talk to the server over a TCP session on the client port (2181 by default) using a binary wire protocol identified by numeric OpCodes; the standard delete operation is OpCode 2 (delete), which is subject to both session validation and a DELETE ACL check. The affected code path is OpCode 20 / 0x14, deleteContainer, an internal-only maintenance opcode used by the server itself to reap container and TTL znodes, and it was reachable over the wire without the checks applied to the regular delete path. The root cause is CWE-862 (Missing Authorization): the deleteContainer handler performs neither the session-permission check nor the DELETE ACL check before acting on the target znode, so any peer that can complete a plain TCP session and emit the raw request packet can delete an empty znode regardless of the ACL on the znode or its parent. No CPE strings were supplied in the source data; the affected product scope is defined by the EUVD/NVD version ranges Apache ZooKeeper 3.8.0 ≤ 3.8.6 and 3.9.0 ≤ 3.9.5.

Know when Zookeeper 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 (CNA) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 7.5 HIGH

Raw TCP session on port 2181 needs no auth or ACL (AV:N/AC:L/PR:N/UI:N); impact is unauthorized znode deletion so I:H, with no data disclosure (C:N) and no direct service crash (A:N).

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

Primary rating from Vendor (CNA).

CVSS VectorVendor

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

Lifecycle Timeline

4
Analysis Updated
Sep 17, 2026 - 20:46 vuln.today
v3 - CVSS changed
Analysis Updated
Sep 17, 2026 - 20:46 vuln.today
v2 - CVSS changed
CVSS changed
Sep 17, 2026 - 20:22 NVD
7.5 (HIGH)
CVE Published
Sep 15, 2026 - 18:24 oss-security
CRITICAL

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

Apache ZooKeeper versions 3.8.0 through 3.8.6 and 3.9.0 through 3.9.5 contain an unauthenticated authorization bypass that allows attackers to delete specific empty znodes if they can reach the client port. This could disrupt dependent applications and services that rely on ZooKeeper for coordination, leading to operational outages or misconfigurations. While no public exploit identified at time of analysis and exploitation requires custom protocol crafting, organizations with exposed ZooKeeper instances should prioritize network restrictions and monitoring.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict network access to ZooKeeper client port 2181 to trusted application/ensemble networks; implement network-level ACLs; monitor for deleteContainer opcode (20) traffic; apply vendor patch when available.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
High
core coordination service underpinning Kafka, Hadoop, HBase, Solr clusters
Data Quality
4 sources
Confidence: Medium

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.2%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
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.

CVE-2017-5637 HIGH POC
7.5 Oct 10

Two four letter word commands "wchp/wchc" are CPU intensive and could cause spike of CPU utilization on Apache ZooKeeper

CVE-2016-5017 HIGH POC
8.1 Sep 21

Buffer overflow in the C cli shell in Apache Zookeeper before 3.4.9 and 3.5.x before 3.5.3, when using the "cmd:" batch

CVE-2026-24281 HIGH POC
7.4 Mar 07

Hostname verification bypass in Apache ZooKeeper's ZKTrustManager allows attackers with a valid certificate trusted by t

CVE-2021-21295 MEDIUM
5.9 Mar 09

Netty is an open-source, asynchronous event-driven network application framework for rapid development of maintainable h

CVE-2024-51504 CRITICAL
9.1 Nov 07

When using IPAuthenticationProvider in ZooKeeper Admin Server there is a possibility of Authentication Bypass by Spoofin

CVE-2023-44981 CRITICAL
9.1 Oct 11

Authorization Bypass Through User-Controlled Key vulnerability in Apache ZooKeeper. Rated critical severity (CVSS 9.1),

CVE-2026-59739 HIGH
7.5 Sep 15

Unauthenticated remote clients can discover the names of ACL-restricted znodes in Apache ZooKeeper 3.8.0 through 3.8.6 a

CVE-2026-59969 HIGH
7.5 Sep 15

Improper certificate hostname validation in Apache ZooKeeper's quorum TLS path allows a CA-trusted peer certificate whos

CVE-2026-24308 HIGH
7.5 Mar 07

Apache ZooKeeper 3.8.5 and 3.9.4 improperly log sensitive client configuration data at INFO level, allowing unauthentica

CVE-2018-8012 HIGH
7.5 May 21

No authentication/authorization is enforced when a server attempts to join a quorum in Apache ZooKeeper before 3.4.10, a

CVE-2019-0201 MEDIUM
5.9 May 23

An issue is present in Apache ZooKeeper 1.0.0 to 3.4.13 and 3.5.0-alpha to 3.5.4-beta. Rated medium severity (CVSS 5.9),

CVE-2026-84439 MEDIUM
5.3 Sep 15

Audit log injection in Apache ZooKeeper 3.9.0–3.9.5 and 3.8.0–3.8.6 allows attackers to forge entries in zookeeper_audit

Vendor StatusVendor

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