Debian Package Tracker
Register | Log in
Subscribe

zookeeper

High-performance coordination service for distributed applications

Choose email to subscribe with

general
  • source: zookeeper (main)
  • version: 3.9.6-1
  • maintainer: Debian Java Maintainers (archive) (DMD)
  • uploaders: tony mancill [DMD] – James Page [DMD]
  • arch: all any
  • std-ver: 4.7.4
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 3.4.13-6+deb11u1
  • o-o-sec: 3.4.13-6+deb11u1
  • oldstable: 3.8.0-11+deb12u2
  • old-sec: 3.8.0-11+deb12u1
  • stable: 3.9.3-1+deb13u1
  • testing: 3.9.6-1
  • unstable: 3.9.6-1
versioned links
  • 3.4.13-6+deb11u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.8.0-11+deb12u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.8.0-11+deb12u2: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.9.3-1+deb13u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.9.6-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • libzookeeper-java (1 bugs: 0, 1, 0, 0)
  • libzookeeper-java-doc
  • libzookeeper-mt-dev
  • libzookeeper-mt2
  • libzookeeper-st-dev
  • libzookeeper-st2
  • python3-zookeeper
  • zookeeper (4 bugs: 0, 3, 1, 0)
  • zookeeper-bin
  • zookeeperd (2 bugs: 0, 1, 1, 0)
action needed
8 security issues in trixie high

There are 8 open security issues in trixie.

5 important issues:
  • CVE-2026-59739: Information disclosure via SetWatches reconnect replay in Apache ZooKeeper 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. Issue is caused by incomplete fix for CVE-2024-23944 (ZOOKEEPER-4799). The fix added ACL checking to WatchManager.triggerWatch(). However, DataTree.setWatches() — the SetWatches/SetWatches2 reconnect replay handler — still calls watcher.process(event) with null ACL, bypassing the check entirely. It's important to note that only the path is exposed by this vulnerability, not the data of znode, but since znode path can contain sensitive information like user name or login ID, this issue is potentially critical. Users are recommended to upgrade to version 3.9.6, 3.8.7 which fixes the issue.
  • CVE-2026-59969: Apache ZooKeeper quorum TLS fails to enforce peer hostname verification in FIPS-mode deployments. When sslQuorum=true, zookeeper.fips-mode=true, ssl.quorum.hostnameVerification=true, and ssl.quorum.clientHostnameVerification=true are enabled, the Java SSLSocket quorum path accepts a CA-trusted peer certificate whose SAN does not match the connected host. A malicious or misissued peer certificate can therefore join quorum traffic, participate in leader election, and enter replication flows. Users are recommended to upgrade to version 3.8.7 or 3.9.6, which fixes the issue.
  • CVE-2026-79993: 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.
  • CVE-2026-84439: 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.
  • CVE-2026-84501: 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 (\n). When the ensemble name doesn't match, EnsembleAuthenticationProvider.handleAuthentication() logs the raw, unsanitized name via LOG.warn(). Because SLF4J's {} placeholder preserves embedded newlines, the attacker can forge complete log entries — with arbitrary timestamps, log levels, class names, and messages — that are visually indistinguishable from genuine ZooKeeper log output. 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.8.7 or 3.9.6, which fixes the issue.
3 issues left for the package maintainer to handle:
  • CVE-2025-58457: (needs triaging) Improper permission check in ZooKeeper AdminServer lets authorized clients to run snapshot and restore command with insufficient permissions. This issue affects Apache ZooKeeper: from 3.9.0 before 3.9.4. Users are recommended to upgrade to version 3.9.4, which fixes the issue. The issue can be mitigated by disabling both commands (via admin.snapshot.enabled and admin.restore.enabled), disabling the whole AdminServer interface (via admin.enableServer), or ensuring that the root ACL does not provide open permissions. (Note that ZooKeeper ACLs are not recursive, so this does not impact operations on child nodes besides notifications from recursive watches.)
  • CVE-2026-24281: (needs triaging) Hostname verification in Apache ZooKeeper 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. It's important to note that attacker must present a certificate which is trusted by ZKTrustManager which makes the attack vector harder to exploit. Users are recommended to upgrade to version 3.8.6 or 3.9.5, which fixes this issue by introducing a new configuration option to disable reverse DNS lookup in client and quorum protocols.
  • CVE-2026-24308: (needs triaging) Improper handling of configuration values in ZKConfig in Apache ZooKeeper 3.8.5 and 3.9.4 on all platforms allows an attacker to expose sensitive information stored in client configuration in the client's logfile. Configuration values are exposed at INFO level logging rendering potential production systems affected by the issue. Users are recommended to upgrade to version 3.8.6 or 3.9.5 which fixes this issue.

You can find information about how to handle these issues in the security team's documentation.

Created: 2025-09-24 Last update: 2026-09-26 18:00
7 security issues in bookworm high

There are 7 open security issues in bookworm.

5 important issues:
  • CVE-2026-59739: Information disclosure via SetWatches reconnect replay in Apache ZooKeeper 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. Issue is caused by incomplete fix for CVE-2024-23944 (ZOOKEEPER-4799). The fix added ACL checking to WatchManager.triggerWatch(). However, DataTree.setWatches() — the SetWatches/SetWatches2 reconnect replay handler — still calls watcher.process(event) with null ACL, bypassing the check entirely. It's important to note that only the path is exposed by this vulnerability, not the data of znode, but since znode path can contain sensitive information like user name or login ID, this issue is potentially critical. Users are recommended to upgrade to version 3.9.6, 3.8.7 which fixes the issue.
  • CVE-2026-59969: Apache ZooKeeper quorum TLS fails to enforce peer hostname verification in FIPS-mode deployments. When sslQuorum=true, zookeeper.fips-mode=true, ssl.quorum.hostnameVerification=true, and ssl.quorum.clientHostnameVerification=true are enabled, the Java SSLSocket quorum path accepts a CA-trusted peer certificate whose SAN does not match the connected host. A malicious or misissued peer certificate can therefore join quorum traffic, participate in leader election, and enter replication flows. Users are recommended to upgrade to version 3.8.7 or 3.9.6, which fixes the issue.
  • CVE-2026-79993: 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.
  • CVE-2026-84439: 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.
  • CVE-2026-84501: 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 (\n). When the ensemble name doesn't match, EnsembleAuthenticationProvider.handleAuthentication() logs the raw, unsanitized name via LOG.warn(). Because SLF4J's {} placeholder preserves embedded newlines, the attacker can forge complete log entries — with arbitrary timestamps, log levels, class names, and messages — that are visually indistinguishable from genuine ZooKeeper log output. 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.8.7 or 3.9.6, which fixes the issue.
2 issues postponed or untriaged:
  • CVE-2026-24281: (needs triaging) Hostname verification in Apache ZooKeeper 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. It's important to note that attacker must present a certificate which is trusted by ZKTrustManager which makes the attack vector harder to exploit. Users are recommended to upgrade to version 3.8.6 or 3.9.5, which fixes this issue by introducing a new configuration option to disable reverse DNS lookup in client and quorum protocols.
  • CVE-2026-24308: (needs triaging) Improper handling of configuration values in ZKConfig in Apache ZooKeeper 3.8.5 and 3.9.4 on all platforms allows an attacker to expose sensitive information stored in client configuration in the client's logfile. Configuration values are exposed at INFO level logging rendering potential production systems affected by the issue. Users are recommended to upgrade to version 3.8.6 or 3.9.5 which fixes this issue.
Created: 2026-09-19 Last update: 2026-09-26 18:00
1 security issue in buster high

There is 1 open security issue in buster.

1 important issue:
  • CVE-2024-23944: Information disclosure in persistent watchers handling in Apache ZooKeeper due to missing ACL check. It allows an attacker to monitor child znodes by attaching a persistent watcher (addWatch command) to a parent which the attacker has already access to. ZooKeeper server doesn't do ACL check when the persistent watcher is triggered and as a consequence, the full path of znodes that a watch event gets triggered upon is exposed to the owner of the watcher. It's important to note that only the path is exposed by this vulnerability, not the data of znode, but since znode path can contain sensitive information like user name or login ID, this issue is potentially critical. Users are recommended to upgrade to version 3.9.2, 3.8.4 which fixes the issue.
Created: 2024-03-14 Last update: 2024-05-14 02:03
Does not build reproducibly during testing normal
A package building reproducibly enables third parties to verify that the source matches the distributed binaries. It has been identified that this source package produced different results, failed to build or had other issues in a test environment. Please read about how to improve the situation!
Created: 2026-03-21 Last update: 2026-10-02 22:18
Depends on packages which need a new maintainer normal
The packages that zookeeper depends on which need a new maintainer are:
  • javacc-maven-plugin (#922602)
    • Build-Depends: libjavacc-maven-plugin-java
Created: 2022-06-29 Last update: 2026-10-02 20:31
2 open merge requests in Salsa normal
There are 2 open merge requests for this package on Salsa. You should consider reviewing and/or merging these merge requests.
Created: 2026-09-28 Last update: 2026-09-28 21:31
lintian reports 2 warnings normal
Lintian reports 2 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2026-06-21 Last update: 2026-09-20 19:01
debian/patches: 10 patches to forward upstream low

Among the 24 debian patches available in version 3.9.6-1 of the package, we noticed the following issues:

  • 10 patches where the metadata indicates that the patch has not yet been forwarded upstream. You should either forward the patch upstream or update the metadata to document its real status.
Created: 2023-02-26 Last update: 2026-09-20 14:00
news
[rss feed]
  • [2026-09-27] zookeeper 3.9.6-1 MIGRATED to testing (Debian testing watch)
  • [2026-09-20] Accepted zookeeper 3.9.6-1 (source) into unstable (tony mancill)
  • [2026-06-26] zookeeper 3.9.5-2 MIGRATED to testing (Debian testing watch)
  • [2026-06-20] Accepted zookeeper 3.9.5-2 (source) into unstable (tony mancill)
  • [2026-03-21] zookeeper 3.9.5-1 MIGRATED to testing (Debian testing watch)
  • [2026-03-15] Accepted zookeeper 3.9.5-1 (source) into unstable (tony mancill)
  • [2026-03-14] zookeeper 3.9.4-2 MIGRATED to testing (Debian testing watch)
  • [2026-03-08] Accepted zookeeper 3.9.4-2 (source) into unstable (tony mancill)
  • [2026-03-08] Accepted zookeeper 3.9.3-1+deb13u1 (source) into proposed-updates (Debian FTP Masters) (signed by: Pierre Gruet)
  • [2025-10-05] zookeeper 3.9.4-1 MIGRATED to testing (Debian testing watch)
  • [2025-09-29] Accepted zookeeper 3.9.4-1 (source) into unstable (tony mancill)
  • [2025-08-18] zookeeper 3.9.3-2 MIGRATED to testing (Debian testing watch)
  • [2025-08-12] Accepted zookeeper 3.9.3-2 (source) into unstable (tony mancill)
  • [2024-12-29] Accepted zookeeper 3.8.0-11+deb12u2 (source) into proposed-updates (Debian FTP Masters) (signed by: Bastien ROUCARIÈS)
  • [2024-11-19] zookeeper 3.9.3-1 MIGRATED to testing (Debian testing watch)
  • [2024-11-13] Accepted zookeeper 3.9.3-1 (source) into unstable (Pierre Gruet)
  • [2024-05-14] zookeeper 3.9.2-2 MIGRATED to testing (Debian testing watch)
  • [2024-05-06] Accepted zookeeper 3.9.2-2 (source) into unstable (Pierre Gruet)
  • [2024-03-30] zookeeper 3.9.2-1 MIGRATED to testing (Debian testing watch)
  • [2024-03-25] Accepted zookeeper 3.9.2-1 (source) into unstable (Bastien Roucariès) (signed by: Bastien ROUCARIÈS)
  • [2023-11-04] Accepted zookeeper 3.4.13-6+deb11u1 (source) into oldstable-proposed-updates (Debian FTP Masters) (signed by: Pierre Gruet)
  • [2023-11-04] Accepted zookeeper 3.8.0-11+deb12u1 (source) into proposed-updates (Debian FTP Masters) (signed by: Pierre Gruet)
  • [2023-11-03] zookeeper 3.9.1-1 MIGRATED to testing (Debian testing watch)
  • [2023-10-31] Accepted zookeeper 3.8.0-11+deb12u1 (source) into stable-security (Debian FTP Masters) (signed by: Pierre Gruet)
  • [2023-10-31] Accepted zookeeper 3.4.13-6+deb11u1 (source) into oldstable-security (Debian FTP Masters) (signed by: Pierre Gruet)
  • [2023-10-28] Accepted zookeeper 3.9.1-1 (source) into unstable (Pierre Gruet)
  • [2023-10-20] Accepted zookeeper 3.4.13-2+deb10u1 (source all amd64) into oldoldstable (Chris Lamb)
  • [2023-04-26] zookeeper 3.8.0-11 MIGRATED to testing (Debian testing watch)
  • [2023-04-06] Accepted zookeeper 3.8.0-11 (source) into unstable (Pierre Gruet)
  • [2022-11-26] zookeeper 3.8.0-10 MIGRATED to testing (Debian testing watch)
  • 1
  • 2
bugs [bug history graph]
  • all: 16
  • RC: 0
  • I&N: 10
  • M&W: 6
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian (0, 2)
  • buildd: logs, reproducibility, cross
  • popcon
  • browse source code
  • other distros
  • security tracker
  • debian patches
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 3.9.5-2
  • 5 bugs

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing