Bug 2529450

Summary: CVE-2026-76560 389-ds-base: 389-ds: anonymous LDAP client can defeat SELFDN ACI bind-rule checks via empty bind DN [fedora-all]
Product: [Fedora] Fedora Reporter: Samuele Negrini <snegrini>
Component: 389-ds-baseAssignee: Viktor Ashirov <vashirov>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: rawhideCC: abokovoy, jachapma, mreynolds, spichugi, tbordaz, vashirov
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---Flags: fedora-admin-xmlrpc: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["4ab676a1-67ca-4ee5-bc60-9d988727ec7e"]}
Fixed In Version: 389-ds-base-3.3.1-3.fc45 389-ds-base-3.1.5-4.fc43 389-ds-base-3.2.3-5.fc44 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-09-25 00:17:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2519521    

Description Samuele Negrini 2026-09-07 13:11:35 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

389 Directory Server's ACI bind-rule evaluator (ldap/servers/plugins/acl/acllas.c) compares a client's bind DN against a stored attribute value using a plain string comparison (slapi_utf8casecmp). An anonymous LDAP bind has an empty-string client DN, and 389-ds's own DN syntax validator (ldap/servers/plugins/syntaxes/dn.c) accepts zero-length attribute values as valid. Where this comparison is reached with the target attribute holding an explicit empty value, an anonymous client's empty DN matches it and satisfies the bind rule with no authentication of any kind.

Independently reproduced and confirmed for two distinct bind-rule/operation combinations:

1. SELFDN on ADD: a minimal test ACI (allow (add) userattr = "owner#SELFDN") on plain 389-ds-base (389-ds-base-3.2.2-2.fc44), zero FreeIPA schema/plugins, was defeated by an anonymous ADD with owner: set to an empty value, while a control case (non-empty, non-matching value) was correctly refused.

2. USERDN on MODIFY: a minimal test ACI (allow (write) userattr = "owner#USERDN") was defeated by an anonymous MODIFY of a protected attribute once the target entry's owner attribute was set to an explicit empty value (not merely absent -- an absent attribute does not trigger the defect, confirmed by direct testing of both cases). A baseline case with owner holding a real, non-matching DN was correctly refused. Root cause confirmed at the code level in DS_LASUserDnAttrEval: userattr="...#USERDN" is explicitly excluded from the SELFDN-only ADD-time fast path in acllas.c, but on MODIFY the evaluator reads the stored attribute value via slapi_entry_attr_find and compares it to the client DN via slapi_utf8casecmp -- an empty stored value matches an anonymous bind's empty DN and access is granted (confirmed via ACL debug trace: "matches(, ) ... allowed by aci").

This confirms the defect is a general logic error in the ACI bind-rule evaluator itself, not limited to one bind-rule type (SELFDN) or one operation type (ADD) -- it reproduces for both SELFDN+ADD and USERDN+MODIFY. Any 389-ds/RHDS deployment defining a userattr="X#SELFDN" or userattr="X#USERDN" bind rule on an attribute permitted to hold an explicit empty value is affected.

Note: FreeIPA ships a default ACI of exactly this vulnerable shape (install/share/default-aci.ldif: "Allow member managers to modify members of user groups", gating write access to the "member" attribute of ipaUserGroup entries via userattr = "memberManager#USERDN" or userattr = "memberManager#GROUPDN"). Whether this specific ACI is exploitable in practice depends on whether any FreeIPA workflow ever sets memberManager to an explicit empty string rather than deleting the attribute outright when a member manager is removed -- that is a FreeIPA-code-level question, not yet confirmed, and is tracked separately from this 389-ds-level defect.

Comment 1 Viktor Ashirov 2026-09-07 18:38:25 UTC
Fixed in https://github.com/389ds/389-ds-base/commit/b803594c9

Comment 2 Fedora Update System 2026-09-07 21:24:35 UTC
FEDORA-2026-b16c9cbc0f (389-ds-base-3.2.3-2.fc44) has been submitted as an update to Fedora 44.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-b16c9cbc0f

Comment 3 Fedora Update System 2026-09-08 01:38:41 UTC
FEDORA-2026-c1e25a4642 has been pushed to the Fedora 45 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-c1e25a4642`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-c1e25a4642

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 4 Fedora Update System 2026-09-08 01:58:34 UTC
FEDORA-2026-b16c9cbc0f has been pushed to the Fedora 44 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-b16c9cbc0f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-b16c9cbc0f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2026-09-08 02:20:58 UTC
FEDORA-2026-0b8bc362b1 has been pushed to the Fedora 43 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-0b8bc362b1`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-0b8bc362b1

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Fedora Update System 2026-09-09 05:04:34 UTC
FEDORA-2026-b16c9cbc0f has been pushed to the Fedora 44 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-b16c9cbc0f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-b16c9cbc0f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 7 Fedora Update System 2026-09-10 01:46:43 UTC
FEDORA-2026-b16c9cbc0f has been pushed to the Fedora 44 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-b16c9cbc0f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-b16c9cbc0f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 8 Fedora Update System 2026-09-10 02:07:04 UTC
FEDORA-2026-0b8bc362b1 has been pushed to the Fedora 43 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-0b8bc362b1`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-0b8bc362b1

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2026-09-10 02:16:47 UTC
FEDORA-2026-c1e25a4642 has been pushed to the Fedora 45 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-c1e25a4642`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-c1e25a4642

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Fedora Update System 2026-09-25 00:17:00 UTC
FEDORA-2026-c1e25a4642 (389-ds-base-3.3.1-3.fc45) has been pushed to the Fedora 45 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 11 Fedora Update System 2026-09-25 00:55:38 UTC
FEDORA-2026-0b8bc362b1 (389-ds-base-3.1.5-4.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 12 Fedora Update System 2026-09-25 01:12:39 UTC
FEDORA-2026-b16c9cbc0f (389-ds-base-3.2.3-5.fc44) has been pushed to the Fedora 44 stable repository.
If problem still persists, please make note of it in this bug report.