CVE-2024-51504
NoneCVSS
—
EPSS
0.9%
Published
Nov 7, 2024
CISA due date
—
Cloudanix analysis
Attackers can pretend to come from an allowed address and run powerful maintenance commands on certain ZooKeeper servers, risking data leaks or outages.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Trivial
- Impact
- Data Exposure
- Component
- Application
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Authentication bypass in ZooKeeper Admin Server IPAuthenticationProvider by spoofing client IP via untrusted HTTP headers such as X-Forwarded-For, allowing execution of privileged commands including snapshot and restore.
Why it matters to the business
Attackers can trigger unauthorized data exposure or service disruption on affected ZooKeeper deployments until systems are updated.
How an attack unfolds
An attacker identifies the ZooKeeper Admin Server endpoint, crafts HTTP requests containing a spoofed X-Forwarded-For header to impersonate an authorized IP address, bypasses the weak default IP authentication, and issues arbitrary administrative commands such as snapshot or restore.
How to fix it
Upgrade ZooKeeper to version 3.9.3 or later; disable or reconfigure IPAuthenticationProvider to use a trusted proxy or source IP validation that does not honor untrusted headers.
How to confirm the fix worked
Confirm running version is at least 3.9.3; test that Admin Server rejects requests with spoofed X-Forwarded-For headers from untrusted sources.
Typical attack path
- Locate publicly reachable ZooKeeper Admin Server
- Send crafted HTTP request with spoofed X-Forwarded-For header
- Bypass IP-based authentication
- Execute privileged commands such as snapshot or restore
How to detect it
Inspect Admin Server access logs for requests containing X-Forwarded-For headers originating from unexpected sources combined with execution of snapshot or restore commands.
- X-Forwarded-For header in Admin Server requests
- snapshot command in Admin Server logs
- restore command in Admin Server logs
What your security team should do
- Immediately upgrade all ZooKeeper instances to 3.9.3
- Review and harden Admin Server authentication configuration
- Restrict Admin Server network exposure to trusted management networks only
The record
When using IPAuthenticationProvider in ZooKeeper Admin Server there is a possibility of Authentication Bypass by Spoofing -- this only impacts IP based authentication implemented in ZooKeeper Admin Server. Default configuration of client's IP address detection in IPAuthenticationProvider, which uses HTTP request headers, is weak and allows an attacker to bypass authentication via spoofing client's IP address in request headers. Default configuration honors X-Forwarded-For HTTP header to read client's IP address. X-Forwarded-For request header is mainly used by proxy servers to identify the client and can be easily spoofed by an attacker pretending that the request comes from a different IP address. Admin Server commands, such as snapshot and restore arbitrarily can be executed on successful exploitation which could potentially lead to information leakage or service availability issues. Users are recommended to upgrade to version 3.9.3, which fixes this issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.apache.zookeeper:zookeeper | 3.9.0 | 3.9.3 |
| Bitnami | zookeeper | 3.9.0 | 3.9.3 |
| Chainguard | solr | 0 | 9.8.1-r1 |
| Chainguard | solr-oci-compat | 0 | 9.8.1-r1 |
| Chainguard | thingsboard | 0 | 4.0.1-r51 |
| Chainguard | thingsboard-tb-js-executor | 0 | 4.0.1-r51 |
| Chainguard | thingsboard-tb-mqtt-transport | 0 | 4.0.1-r51 |
| Chainguard | thingsboard-tb-node | 0 | 4.0.1-r51 |
| Chainguard | thingsboard-tb-web-ui | 0 | 4.0.1-r51 |
| Chainguard | wso2is | 0 | 7.2.0-r0 |
| Chainguard | wso2is-compat | 0 | 7.2.0-r0 |
| Chainguard | wso2is-doc | 0 | 7.2.0-r0 |
| Debian:13 | zookeeper | 0 | No fix |
| Ubuntu:20.04:LTS | zookeeper | 0 | No fix |
| Ubuntu:22.04:LTS | zookeeper | 0 | No fix |
| Ubuntu:24.04:LTS | zookeeper | 0 | No fix |
| Ubuntu:24.10 | zookeeper | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | zookeeper | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | zookeeper | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | zookeeper | 0 | No fix |
| Wolfi | solr | 0 | 9.8.1-r1 |
| Wolfi | solr-oci-compat | 0 | 9.8.1-r1 |
| Wolfi | thingsboard | 0 | 4.0.1-r51 |
| Wolfi | thingsboard-tb-js-executor | 0 | 4.0.1-r51 |
| Wolfi | thingsboard-tb-mqtt-transport | 0 | 4.0.1-r51 |
| Wolfi | thingsboard-tb-node | 0 | 4.0.1-r51 |
| Wolfi | thingsboard-tb-web-ui | 0 | 4.0.1-r51 |
| maven | org.apache.zookeeper/zookeeper | 3.9.0 | 3.9.3 |
Related vulnerabilities
- CVE-2024-23944 Information disclosure in persistent watchers handling in Apache ZooKeeper due to missing… Also affects org.apache.zookeeper:zookeeper
- CVE-2019-0201 An issue is present in Apache ZooKeeper 1.0.0 to 3.4.13 and 3.5.0-alpha to 3.5.4-beta. Also affects org.apache.zookeeper:zookeeper
- CVE-2017-5637 Two four letter word commands "wchp/wchc" are CPU intensive and could cause spike of CPU… Also affects org.apache.zookeeper:zookeeper
- CVE-2026-24281 Hostname verification in Apache ZooKeeper ZKTrustManager falls back to reverse DNS (PTR)… Also affects solr
- CVE-2026-24308 Improper handling of configuration values in ZKConfig in Apache ZooKeeper 3.8.5 and 3.9.4… Also affects solr
- CVE-2026-1605 In Eclipse Jetty, versions 12.0.0-12.0.31 and 12.1.0-12.0.5, class GzipHandler exposes a… Also affects solr
- CVE-2025-11143 The Jetty URI parser has some key differences to other common parsers when evaluating… Also affects solr
- CVE-2026-22022 Apache Solr: Unauthorized bypass of certain "predefined permission" rules in the… Also affects solr