Description
The `deleteContainer` opcode (0x14/20) is processed without verifying the caller's ACL permissions, allowing any authenticated client to delete specific znodes in the data tree regardless of the ACL restrictions on the znode or its parent. This opcode is considered internal-only and the official client doesn't have API for it, but a client that can open a plain TCP session on the ZooKeeper client port (2181 by default) - with NO authentication and NO ACL permissions - can delete any empty persistent znode (including regular persistent nodes, container nodes, and TTL nodes) by issuing the raw protocol OpCode deleteContainer (20). The deleteContainer request path completely skips both the session check and the DELETE ACL check that are enforced by the regular delete (OpCode 2) path. This is an authorization bypass / ACL enforcement bug.

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.
Published: 2026-09-16
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Authorization bypass leading to uncontrolled deletion of persistent container nodes
Action: Patch immediately
AI Analysis

Impact

The deleteContainer operation is processed without verifying the caller’s ACL permissions, enabling any client that can communicate over ZooKeeper’s client port to delete znode entries that otherwise would be protected, including empty persistent, container, and TTL nodes. The bug is an authorization bypass that removes the normal session and DELETE ACL checks enforced by the ordinary delete command. An attacker can therefore compromise the configuration and integrity of the ZooKeeper data tree, potentially disrupting services that rely on ZooKeeper for coordination or metadata storage.

Affected Systems

Apache ZooKeeper versions 3.8.0 through 3.8.6 and 3.9.0 through 3.9.5 are affected. The issue has been fixed in 3.8.7 and 3..

Risk and Exploitability

The CVSS score of 7.5 indicates high severity, and the EPSS score of less than 1% suggests the likelihood of exploitation is very low. The vulnerability is not listed in the CISA KEV catalog, implying no confirmed widespread exploitation. Nevertheless, because the exploit does not require authentication and can be performed by opening a plain TCP session to port 2181, the potential impact on confidentiality, integrity, and availability remains significant if the ZooKeeper service is exposed.

Generated by OpenCVE AI on September 18, 2026 at 11:13 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Apache ZooKeeper to version 3.9.6 or 3.8.7, which includes the fix for the deleteContainer ACL check.
  • Configure ZooKeeper to require authentication (SASL/ACL) on all clients and enforce ACL policies for critical znodes.
  • Limit network exposure of the ZooKeeper client port (2181) by using firewalls, VPNs, or access control lists to allow only trusted hosts to connect.

Generated by OpenCVE AI on September 18, 2026 at 11:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 18 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:apache:zookeeper:*:*:*:*:*:*:*:*

Thu, 17 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 16 Sep 2026 13:45:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache zookeeper
Vendors & Products Apache
Apache zookeeper

Wed, 16 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
References

Wed, 16 Sep 2026 09:45:00 +0000

Type Values Removed Values Added
Description The `deleteContainer` opcode (0x14/20) is processed without verifying the caller's ACL permissions, allowing any authenticated client to delete specific znodes in the data tree regardless of the ACL restrictions on the znode or its parent. This opcode is considered internal-only and the official client doesn't have API for it, but a client that can open a plain TCP session on the ZooKeeper client port (2181 by default) - with NO authentication and NO ACL permissions - can delete any empty persistent znode (including regular persistent nodes, container nodes, and TTL nodes) by issuing the raw protocol OpCode deleteContainer (20). The deleteContainer request path completely skips both the session check and the DELETE ACL check that are enforced by the regular delete (OpCode 2) path. This is an authorization bypass / ACL enforcement bug. 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.
Title Apache ZooKeeper: Missing ACL check on deleteContainer opcode allows unauthorized deletion of any empty persistent/container znode
Weaknesses CWE-862
References

Subscriptions

Apache Zookeeper
cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-09-17T19:16:04.241Z

Reserved: 2026-08-25T16:40:35.796Z

Link: CVE-2026-79993

cve-icon Vulnrichment

Updated: 2026-09-17T19:16:00.443Z

cve-icon NVD

Status : Analyzed

Published: 2026-09-16T10:16:53.190

Modified: 2026-09-18T14:37:21.703

Link: CVE-2026-79993

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-18T11:15:07Z

Weaknesses