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: n/a
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 is not provided, and the EPSS score is unavailable, so the likelihood of exploitation cannot be quantified. However, the exploit does not require any special privileges or authentication; a client can open a plain TCP session on the default ZooKeeper port and issue the deleteContainer opcode. The vulnerability is listed in the KEV catalog as not present, suggesting no confirmed widespread exploitation yet, but the inherent lack of authentication makes it a high‑impact risk if the ZooKeeper service is publicly reachable.

Generated by OpenCVE AI on September 16, 2026 at 13:20 UTC.

Remediation

No vendor fix or workaround currently provided.

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 16, 2026 at 13:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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-16T10:11:55.778Z

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

Link: CVE-2026-79993

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-09-16T11:16:43.383

Link: CVE-2026-79993

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-16T13:30:10Z

Weaknesses