#1153272 zookeeper: CVE-2026-115448 CVE-2026-100235 CVE-2026-100252 CVE-2026-100300 CVE-2026-100302

Package:
src:zookeeper
Source:
src:zookeeper
Submitter:
Moritz Mühlenhoff
Date:
2026-11-07 06:35:04 UTC
Severity:
normal
Tags:
#1153272#5
Date:
2026-11-06 22:07:02 UTC
From:
To:
Hi,

The following vulnerabilities were published for zookeeper.

CVE-2026-115448[0]:
| Uncontrolled recursion in Apache ZooKeeper. The server serializes
| its data tree to a snapshot by recursing one stack frame per znode
| level, with no depth bound. A client permitted to create znodes (the
| default root ACL is open) can build a chain of nested znodes deep
| enough that taking a snapshot exhausts the JVM stack and kills the
| snapshot thread; sizes stay within jute.maxbuffer, so existing
| limits do not prevent it. This is a denial of service that becomes
| persistent: on restart the server rebuilds the deep tree from its
| transaction log and fails again while taking the startup snapshot,
| so it does not return to service, and recovery can entail data loss.
| The same log affects a leader and its followers, so it can spread
| across an ensemble.  This issue affects Apache ZooKeeper 3.8.0
| through 3.8.7 and 3.9.0 through 3.9.6. Users are recommended to
| upgrade to 3.8.8 or 3.9.7, which fix the issue. As a workaround, use
| ACLs and authentication to restrict znode creation rather than
| relying on the default open root ACL.

https://www.openwall.com/lists/oss-security/2026/11/03/13

CVE-2026-100235[1]:
| Incorrect authorization due to a time-of-check to time-of-use
| (TOCTOU) race condition in the setACL request handling of Apache
| ZooKeeper.  When a node's ACL is changed via setACL, the pending
| change is not published to the server's outstanding change record
| for that node. Any request that is prepared (and authorized) after
| the setACL is submitted but before it commits is therefore checked
| against the previous, pre-revocation ACL, yet is applied to the data
| tree after the ACL change has taken effect. A client that currently
| holds a permission can use this window to perform operations
| requiring that permission through and after its revocation — for
| example, committing writes or deletes after losing write access, or
| re-granting itself full permissions, which persistently defeats the
| revocation. In deployments transitioning from the default
| OPEN_ACL_UNSAFE ACL to a restrictive ACL, any unauthenticated client
| can exploit this during the transition.  This issue affects Apache
| ZooKeeper up to and including 3.9.6. Users are recommended to
| upgrade to version 3.8.8 or 3.9.7, which fixes the issue.

https://www.openwall.com/lists/oss-security/2026/11/03/9

CVE-2026-100252[2]:
| Improper Authorization vulnerability in Apache ZooKeeper.  When SASL
| authentication is enabled on the client port, the server's SASL
| callback handler grants every authorization identity (authzid) that
| a client requests, without checking it against the principal the
| client authenticated as. The server then tries to replace the
| requested identity with a canonical form of the authenticated
| principal, derived from the zookeeper.security.auth_to_local rules.
| If no rule applies to the principal, canonicalization fails and the
| error is only logged. The client-requested authzid then becomes the
| session's SASL identity for all ACL checks.  An authenticated client
| whose principal is not covered by the auth_to_local rules can
| therefore claim any SASL identity. With the default rules, this
| includes any Kerberos principal from a realm other than the server's
| default realm, such as a principal from a cross-realm trusted realm.
| The client then gets the permissions granted to that identity in
| sasl ACLs. If the requested identity matches a configured
| zookeeper.superUser, it gets superuser access to the whole data
| tree.  Users are recommended to upgrade to version 3.8.8 or 3.9.7,
| which fixes the issue.

https://www.openwall.com/lists/oss-security/2026/11/03/10

CVE-2026-100300[3]:
| Improper handling of exceptional conditions in the quota subsystem
| of Apache ZooKeeper allows an attacker able to write under the
| /zookeeper/quota subtree — unauthenticated on default deployments,
| where that subtree is world-writable — to crash the server's
| critical request-processing thread and render the on-disk data
| directory permanently unbootable.  This issue affects Apache
| ZooKeeper up to and including 3.9.6. Users are recommended to
| upgrade to version 3.8.8 or 3.9.7, which fixes the issue.

https://www.openwall.com/lists/oss-security/2026/11/03/11

CVE-2026-100302[4]:
| Allocation of Resources Without Limits or Throttling in the
| multiRead request handler of Apache ZooKeeper allows a remote
| attacker to crash the server (denial of service) with a single small
| request.  The multiRead handler places no limit on the number of
| bundled read operations or on the cumulative size of the response it
| builds in memory. Because each operation's result is fully
| materialized and retained before serialization, a request that is
| small on the wire — within the jute.maxbuffer limit — but that
| references a large znode many times can force the server to allocate
| far more heap than the request size implies, exhausting the JVM heap
| and terminating the server with an OutOfMemoryError. Neither
| jute.maxbuffer nor largeRequestMaxBytes prevents this, as both bound
| only the inbound request, not the response.  This issue affects
| Apache ZooKeeper from 3.7.0 through 3.9.6. Users are recommended to
| upgrade to version 3.9.7, which enforces configurable limits on the
| multiRead operation count and cumulative response size.

https://www.openwall.com/lists/oss-security/2026/11/03/12


If you fix the vulnerabilities please also make sure to include the
CVE (Common Vulnerabilities & Exposures) ids in your changelog entry.

For further information see:

[0] https://security-tracker.debian.org/tracker/CVE-2026-115448
https://www.cve.org/CVERecord?id=CVE-2026-115448
[1] https://security-tracker.debian.org/tracker/CVE-2026-100235
https://www.cve.org/CVERecord?id=CVE-2026-100235
[2] https://security-tracker.debian.org/tracker/CVE-2026-100252
https://www.cve.org/CVERecord?id=CVE-2026-100252
[3] https://security-tracker.debian.org/tracker/CVE-2026-100300
https://www.cve.org/CVERecord?id=CVE-2026-100300
[4] https://security-tracker.debian.org/tracker/CVE-2026-100302
https://www.cve.org/CVERecord?id=CVE-2026-100302

Please adjust the affected versions in the BTS as needed.

#1153272#10
Date:
2026-11-07 00:50:26 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
zookeeper, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1153272@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
tony mancill <tmancill@debian.org> (supplier of updated zookeeper package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 06 Nov 2026 15:15:27 -0800
Source: zookeeper
Architecture: source
Version: 3.9.7-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Changed-By: tony mancill <tmancill@debian.org>
Closes: 1153272
Changes:
 zookeeper (3.9.7-1) unstable; urgency=medium
 .
   * New upstream version 3.9.7 (Closes: #1153272)
     Addresses the following security vulnerabilities:
     - CVE-2026-115448
     - CVE-2026-100235
     - CVE-2026-100252
     - CVE-2026-100300
     - CVE-2026-100302
     Review the upstream release notes:
https://zookeeper.apache.org/doc/r3.9.7/releasenotes.html
     and admin guide for changes in behavior:
https://zookeeper.apache.org/doc/r3.9.7/zookeeperAdmin.html
Checksums-Sha1:
 962e36ec393a7b1bdd52a324ffb8ece13d5b8590 3794 zookeeper_3.9.7-1.dsc
 aaa8afa83d8a09568ec5ed8047ff1b151bffca83 4611870 zookeeper_3.9.7.orig.tar.gz
 2f3f31465218e29fe0ae61f77deb70b9d2e17d5d 858 zookeeper_3.9.7.orig.tar.gz.asc
 8ec48dae9b0064d713317c13bb8237c13f8e8c18 92668 zookeeper_3.9.7-1.debian.tar.xz
 88eee42276da1cb4e23ad84a3062d4799be1fcc7 27729 zookeeper_3.9.7-1_arm64.buildinfo
Checksums-Sha256:
 3f4eb32f7a1c5b39dc629be1eba36b6f31f81a3ecd3fd387d3309fcadbfd473e 3794 zookeeper_3.9.7-1.dsc
 43142998ccb71a65cb18a354d1086163da9217a71d39b7c0464be9de41a286b8 4611870 zookeeper_3.9.7.orig.tar.gz
 c57c0718cda959166a10219500193c2ddc9091df196ae882c3c27cb70f30fb3e 858 zookeeper_3.9.7.orig.tar.gz.asc
 fca4b93d5d83c6b21eae18c2d5f1cecba6470689df3af5cc9387c326739be5c7 92668 zookeeper_3.9.7-1.debian.tar.xz
 1f2859ff845421475bee5f2a699c5a9eebe98a264495f4fc22a4d0c776245b37 27729 zookeeper_3.9.7-1_arm64.buildinfo
Files:
 9ac4b089f366d1e5792e8d97b6c96bb7 3794 java optional zookeeper_3.9.7-1.dsc
 98a43823256808481dd69db20ecf08e0 4611870 java optional zookeeper_3.9.7.orig.tar.gz
 9868a407dbe5d2b9cdf8d2cfb8cc0482 858 java optional zookeeper_3.9.7.orig.tar.gz.asc
 b07bfccb041a5dfaf58f4d8db1f1ccb6 92668 java optional zookeeper_3.9.7-1.debian.tar.xz
 eb6350b0061489dcd3f2f816bf0eadbc 27729 java optional zookeeper_3.9.7-1_arm64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEE5Qr9Va3SequXFjqLIdIFiZdLPpYFAmrubFMUHHRtYW5jaWxs
QGRlYmlhbi5vcmcACgkQIdIFiZdLPpbMBBAAvZq1DeLxDsoSND3R/oF2u0wHIQ+E
Y6MikPqdViPy5JSXEE5VHKouEhlP1JkiDT4YeBDiHE0yAuK79WujoeGAF3mokNQ4
QybjJXE66zjHl6E8e5aYVbzjd5DDdxoXOLb87GCDp/Nw3ZYi76cebeDhTjcc5PjD
0Gqdc5kDcyNCKTj78mzXZvCXetaWDcW7mGRYYw4oFlJFaSAxG0vfDxhKDADk+IKL
97mh0zvGHbQidCew3WlevkA+EnLikwvzQ6GxuXlCYU9wG3txRtO39gPC1BDqv5Tf
k+haKMSe2Lm+H9OfCWip5QGkxEJy3TMlD6OQ9yJp8RXkdjMPsY0MnbBn67+mBj8U
h6aN/w19Z1QruvcSR02yF+eSk22qEho50mhFLO2C9efOeif0U+aBVrCKCDOQ9veQ
g3epjqmRzlmefNGPM84Fkh6vuPY77Y67qX9IDFvvyECMZY0q0LMdwgcyuMWDcbJ9
B2DpUl+iQI2z+Jq86GxwOnZxLCpE8YTIxKQGPw6NnTdhkv96YJHk8o1Pnzm5VZE8
24dZkJjNfQ0sYzdSjMy3X7zb4N+grEbIU0oCNOhxWk00N8eIEW0KVt5xkPiRMed0
WWWfIR0eElHg+EtoaKDL0MzNC6YslTpcA1bMDXnEEpqbPKRb0uwVHGY/ihj+plxI
MNb5mDSvL8Rh54o=
=wdh2
-----END PGP SIGNATURE-----