CVE-2024-23944

NameCVE-2024-23944
DescriptionInformation 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
Debian Bugs1066947

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
zookeeper (PTS)bullseye (security), bullseye3.4.13-6+deb11u1vulnerable
bookworm, bookworm (security)3.8.0-11+deb12u1vulnerable
sid, trixie3.9.3-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
zookeepersource(unstable)3.9.2-11066947

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.

Search for package or bug name: Reporting problems