CVE-2026-100252: Apache ZooKeeper: SASL authorization bypass on the client port through a client-supplied authorization ID

Published Nov 3, 2026
·
Updated

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.authtolocal 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 authtolocal 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.

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Apache ZooKeeper to a version that resolves this vulnerability.

    Fixed in 3.8.8
  2. Upgrade

    Upgrade Apache ZooKeeper to a version that resolves this vulnerability.

    Fixed in 3.9.7

Event History

Nov 4, 2026
CVE Published
via MITRE·10:44 AM
Data Sourced
via MITRE·10:44 AM
DescriptionWeakness
Data Sourced
via NVD·11:17 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue in practice?

An attacker must be able to authenticate to the ZooKeeper client port using SASL and have a principal that is not matched by the configured zookeeper.security.auth_to_local rules. With the default rules, this can include Kerberos principals from a cross-realm trusted realm other than the server's default realm.

2

What level of access could an attacker obtain?

The attacker can request any SASL identity and receive the permissions assigned to that identity by sasl ACLs. If they request an identity configured as zookeeper.superUser, they can obtain superuser access across the entire data tree.

3

Are default configurations affected?

Yes. Under the default auth_to_local rules, an authenticated Kerberos principal from a non-default but cross-realm trusted realm may not be canonicalized, allowing the client-supplied authorization identity to be used for ACL checks.

4

What should be done to remediate the issue?

Upgrade Apache ZooKeeper to version 3.8.8 or 3.9.7, which fix the vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203