Name | CVE-2024-23944 |
Description | 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.
|
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
Debian Bugs | 1066947 |
Vulnerable and fixed packages
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|
zookeeper (PTS) | jessie, jessie (lts) | 3.4.9-3+deb8u2 | vulnerable |
| stretch (security), stretch (lts), stretch | 3.4.9-3+deb9u2 | vulnerable |
| buster (security), buster, buster (lts) | 3.4.13-2+deb10u1 | vulnerable |
| bullseye (security), bullseye | 3.4.13-6+deb11u1 | vulnerable |
| bookworm (security), bookworm | 3.8.0-11+deb12u1 | vulnerable |
| sid, trixie | 3.9.3-1 | fixed |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|
zookeeper | source | (unstable) | 3.9.2-1 | | | 1066947 |
Notes
[bookworm] - zookeeper <no-dsa> (Minor issue)
[bullseye] - zookeeper <no-dsa> (Minor issue)
https://www.openwall.com/lists/oss-security/2024/03/14/2
https://issues.apache.org/jira/browse/ZOOKEEPER-4799
Fixed by: https://github.com/apache/zookeeper/commit/65b91d2d9a56157285c2a86b106e67c26520b01d (release-3.8.4-0)
Fixed by: https://github.com/apache/zookeeper/commit/daf7cfd04005cff1a4f7cab5ab13d41db88d0cd8 (release-3.9.2-0)
Persistent (and p-recursive) watches were introduced by ZOOKEEPER-1416, which only exists in 3.6+.
See https://issues.apache.org/jira/browse/ZOOKEEPER-1416
However, classical watches are used (<< 3.6), it seems that to trigger for nodes whose names are not
known in advance is not possible. Nevertheless classical watch leaks some information.
[buster] - zookeeper <postponed> (Minor issue)