Skip to main content

Apache ZooKeeper CVE-2026-100252

CRITICAL
2026-11-03
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with valid cross-realm Kerberos principal
  2. Delivery
    Request privileged authzid during SASL handshake
  3. Exploit
    auth_to_local canonicalization fails, error only logged
  4. Execution
    Client-supplied identity accepted as session identity
  5. Persist
    Gain that identity's sasl ACL permissions
  6. Impact
    Obtain superuser access to full data tree

Vulnerability Assessment

Exploitation Conditions

Requires SASL authentication enabled on the ZooKeeper client port AND an attacker holding a valid authenticated principal whose identity is NOT matched by the configured zookeeper.security.auth_to_local rules - with the default rules this specifically means any Kerberos principal from a realm other than the server's default realm, such as one from a cross-realm trusted realm. The escalation to full superuser requires that the claimed authzid match a configured zookeeper.superUser; otherwise the attacker only gains whatever that claimed identity holds in sasl ACLs. Limiting factors: exploitation is impossible without SASL on the client port, requires the attacker to already authenticate (PR:L - not anonymous), and deployments that do not use cross-realm trust or whose principals are all covered by auth_to_local rules are not exposed. The only complete fix per the vendor is upgrading to 3.8.8 or 3.9.7.

Impact

This is a genuine authorization-bypass priority for Kerberos/SASL-secured ZooKeeper ensembles, but its reach is gated by a specific precondition rather than being broadly remote-unauthenticated. The vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) scores 8.6 (high): network vector, low complexity, no attack requirements, but PR:L - meaning the attacker must already hold valid SASL credentials (an authenticated client), with high confidentiality and integrity impact and no availability impact. That maps to a high-impact privilege-escalation/impersonation flaw rather than a wormable pre-auth RCE. Decision label is 'awaiting_data', and no EPSS score, no CISA KEV listing, and no proof-of-concept reference are present in the provided intelligence, so there is no signal of active or probable exploitation at this time - exploitation status must be read as unproven, not as low-risk-by-confirmation. The impact ceiling is severe: an authenticated client whose principal escapes the auth_to_local rules (e.g., a cross-realm principal) can claim any SASL identity, and if that identity matches a configured zookeeper.superUser it obtains superuser access to the entire data tree, which for ZooKeeper typically underpins Kafka/Hadoop/HBase control-plane data. Net: treat as a high priority for environments using SASL on the client port with cross-realm trust; the PR:L requirement and the specific auth_to_local/cross-realm precondition are what keep this from being a universal emergency.

Exploit ScenarioDerived

An attacker who holds a valid Kerberos principal from a realm that is trusted cross-realm but not covered by the server's default auth_to_local rules connects to the SASL-enabled client port and, during authentication, supplies an authorization ID (authzid) of a privileged identity. The server fails to canonicalize the unmatched principal, silently logs the error, and accepts the client-requested authzid as the session identity, so the attacker inherits that identity's sasl ACL permissions. No public proof-of-concept is referenced in the available data; the low attack complexity (AC:L) means exploitation is straightforward once the cross-realm authentication precondition is met.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Improper authorization in Apache ZooKeeper 3.8.0 through 3.8.7 and 3.9.0 through 3.9.6 lets a client that has already authenticated via SASL on the client port claim an arbitrary authorization identity (authzid) whenever its own principal is not matched by the configured zookeeper.security.auth_to_local rules, because the server grants the requested authzid and only logs the failed canonicalization instead of rejecting the connection. The client then inherits whatever sasl ACL permissions that impersonated identity holds, and gains full superuser access to the entire data tree if the claimed identity matches a configured zookeeper.superUser; with default rules the exploitable principals are those from a Kerberos realm other than the server's default realm, such as a cross-realm trusted realm. Exploitation is gated on SASL being enabled on the client port and the attacker holding a valid but non-canonicalized principal (authenticated, per the PR:L vector), and no public exploit identified at time of analysis; fixed releases are 3.8.8 and 3.9.7.

RemediationAI

Upgrade to Apache ZooKeeper 3.8.8 or 3.9.7, which the vendor states is the complete fix; both branches must be patched because the flaw is present in 3.8.0-3.8.7 and 3.9.0-3.9.6. Because the vendor describes the upgrade as the only complete remediation, organizations that cannot upgrade immediately should reduce exposure through configuration: add or extend zookeeper.security.auth_to_local rules so that every principal able to authenticate - including principals from any trusted realm - canonicalizes successfully, which removes the fail-open path this bug depends on (trade-off: rule mistakes can lock out legitimate clients, so test mappings before rollout); and disable cross-realm trust or otherwise refuse authentication for foreign-realm principals where cross-realm access is not required (trade-off: breaks legitimate cross-realm clients). Additionally, review sasl ACLs and the zookeeper.superUser setting so that no entry names an identity an uncanonicalized client could plausibly claim, and restrict superuser entries to fully canonicalized principals. Advisory references for patch guidance: https://seclists.org/oss-sec/2026/q4/485 and https://zookeeper.apache.org/.

Affected ProductsAI

Apache ZooKeeper 3.9.0 through 3.9.6 and Apache ZooKeeper 3.8.0 through 3.8.7 are affected, per the oss-security advisory; older branches listed on the project site (3.7.x and earlier) are not named in the affected version ranges supplied with this CVE. Exposure is limited to deployments that enable SASL authentication on the client port and accept principals not covered by their auth_to_local rules - under the default rules, principals from a Kerberos realm other than the server's default realm, including cross-realm trusted realms. Deployments with SASL disabled on the client port, or whose principals are all matched by auth_to_local rules and which do not rely on cross-realm trust, are not exposed. Vendor and advisory links: https://zookeeper.apache.org/ and https://seclists.org/oss-sec/2026/q4/485.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZooKeeper's client-port SASL authentication can carry a client-requested authorization identity (authzid) alongside the authenticated principal. In the vulnerable code path, the server's SASL callback handler accepts every authzid the client requests without validating it against the principal that actually authenticated, then attempts to substitute a canonical form of that principal derived from the zookeeper.security.auth_to_local rules. When no rule applies to the principal, canonicalization fails, the failure is only logged, and the client-supplied authzid survives as the session's SASL identity for all subsequent ACL checks. The result is a classic impersonation/bypass condition in the authorization layer rather than a cryptographic break of SASL itself: the underlying identity provider (Kerberos, typically) authenticates the client correctly, but ZooKeeper's identity-mapping step fails open. Because sasl ACLs and the zookeeper.superUser list are keyed on the resulting identity string, an attacker who can supply an arbitrary authzid can target any identity named in those ACLs, including a superuser entry, which converts a single-identity bypass into full read/write control of the data tree. The vendor classifies the flaw as an Improper Authorization issue; no CWE identifier was supplied in the available input data. Relevant configuration surfaces are the client port SASL setup, the auth_to_local rules, cross-realm trust relationships, sasl ACLs and zookeeper.superUser.

Know when Canonical gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

vuln.today AI 8.1 HIGH

Network client port (AV:N), straightforward once preconditions met (AC:L), attacker must hold valid SASL credentials so PR:L; identity impersonation yields full data-tree read/write (C:H/I:H) with no availability impact (A:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

A critical authorization flaw in Apache ZooKeeper (3.8.0-3.8.7 and 3.9.0-3.9.6) allows an authenticated client to impersonate an arbitrary identity-including superusers-gaining control over the entire configuration data tree that governs distributed systems such as Kafka and HDFS. Any organization exposing ZooKeeper client ports with SASL enabled, particularly with cross-realm Kerberos trust, faces possible full compromise of coordination and configuration integrity, making this a priority for security leadership.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict client-port access to trusted networks and hosts, harden auth_to_local rules so non-canonicalized principals cannot connect, minimize superUser assignments, and remove unnecessary cross-realm trust until patched.

Threat Intelligence Overview

Prevalence
High
widely-deployed coordination service underpinning Kafka, Hadoop, HBase clusters
Data Quality
1 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2014-6271 CRITICAL POC
9.8 Sep 24

GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2016-3714 HIGH POC
8.4 May 05

The (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.

CVE-2017-12617 HIGH POC
8.1 Oct 04

When running Apache Tomcat versions 9.0.0.M1 to 9.0.0, 8.5.0 to 8.5.22, 8.0.0.RC1 to 8.0.46 and 7.0.0 to 7.0.81 with HTT

CVE-2016-8735 CRITICAL POC
9.8 Apr 06

Remote code execution is possible with Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8

CVE-2014-7169 CRITICAL POC
9.8 Sep 25

GNU Bash through 4.3 bash43-025 processes trailing strings after certain malformed function definitions in the values of

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2016-5195 HIGH POC
7.0 Nov 10

Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by lev

CVE-2013-2423 LOW POC
3.7 Apr 17

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 17 and earlier, and

CVE-2023-4911 HIGH POC
7.8 Oct 03

Local privilege escalation in the GNU C Library (glibc) dynamic loader ld.so allows unprivileged local users on affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy