CVE-2026-79993: Apache ZooKeeper: Missing ACL check on deleteContainer opcode allows unauthorized deletion of any empty persistent/container znode

Published Sep 15, 2026
·
Updated

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.

Affected Software

1 affected component
Apache Zookeeper>=3.9.0<=3.9.5, >=3.8.0<=3.8.6

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Apache ZooKeeper to a version that resolves this vulnerability.

    Fixed in 3.9.6
  2. Upgrade

    Upgrade Apache ZooKeeper to a version that resolves this vulnerability.

    Fixed in 3.8.7

Event History

Sep 16, 2026
CVE Published
via MITRE·09:27 AM
Data Sourced
via MITRE·09:27 AM
DescriptionWeakness

Frequently Asked Questions

1

Who can exploit this issue?

Any client that can establish a plain TCP connection to the ZooKeeper client port, which is 2181 by default, can exploit it. Authentication and DELETE ACL permission are not required.

2

What conditions are required for a znode to be deleted?

The target must be an empty persistent znode. This includes regular persistent nodes, container nodes, and TTL nodes.

3

Are systems using ACLs protected from this attack?

No. The affected deleteContainer request path skips both the session check and the DELETE ACL check, so ACL restrictions on the target znode and its parent do not prevent deletion.

4

Which versions should be upgraded?

Apache ZooKeeper 3.9.0 through 3.9.5 and 3.8.0 through 3.8.6 are affected. Upgrade to 3.9.6 or 3.8.7.

5

What can be done if an upgrade cannot be applied immediately?

Restrict network access to the ZooKeeper client port so untrusted clients cannot establish TCP sessions to it. The provided information does not describe another configuration-based mitigation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203