REDHAT-BUG-2489835: Buffer Overflow

Published Jun 17, 2026
·
Updated

Three related heap buffer overflow bugs were found in the aclpnormalizeacltxt() function in ldap/servers/plugins/acl/aclparse.c of 389 Directory Server. The function is called during ACI (Access Control Instruction) parsing via aclparse() -> aclpparseaci() -> aclpsanitycheckacltxt() -> aclpnormalizeacltxt().

The root cause is that aclpnormalizeacltxt() blindly assumes the ACI string after whitespace stripping still has at least 3 characters (the "aci" or "acl" keyword), without any bounds check. The assert(s) on line 850 only checks for NULL, not for an empty or too-short string, and asserts are compiled out in release builds (NDEBUG).

The three bugs are:

1. Out-of-bounds WRITE (1 byte): On line 852, (s + 2) = 'l' writes one byte past the heap buffer when the string is too short after whitespace stripping.

2. Out-of-bounds READ (strchr): On line 856, strchr(aclstr, ';') reads past the buffer because the NUL terminator was clobbered or the string lacks a semicolon.

3. Out-of-bounds READ (strdup): On line 866, slapichstrdup(aclName) reads past the buffer in strdup for the same root cause.

To trigger the vulnerability, an attacker needs write access to the 'aci' attribute on a directory entry. In the default modern configuration (389-ds-base 2.x / RHDS 12), only the Directory Manager can write ACIs. However, in older deployments or those using common ACI patterns with negated targetattr rules (e.g., targetattr!="userPassword") or wildcards (targetattr=""), any authenticated user may be able to write to the 'aci' attribute.

ASAN is not enabled in production release builds (the spec file defaults to %bcond asan 0 / %global useasan 0). In production binaries, the heap corruption is silent — the 1-byte write corrupts adjacent heap memory without a deterministic crash, and the OOB reads silently read garbage from adjacent heap allocations. The practical impact in production builds is likely negligible, making this primarily a hardening issue.

The 1-byte write primitive is not controllable (fixed value 'l'/0x6C at fixed offset +2 from a small allocation) and is not realistically weaponizable for code execution.

Upstream fix: https://github.com/389ds/389-ds-base/pull/7542 Upstream issue: https://github.com/389ds/389-ds-base/issues/7541

Affected Software

1 affected component
389 Project 389 Directory Server (389-ds-base)

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade 389-ds-base to a version that resolves this vulnerability.

    Patch https://github.com/389ds/389-ds-base/pull/7542
  2. Configuration

    Restrict write access to the 'aci' attribute so that only the Directory Manager (administrator) can modify ACIs. Remove or tighten any ACIs that grant write access to authenticated users (for example rules using targetattr!="userPassword" or targetattr="*").

    389 Directory Server (ACI attribute) aci_write_permissions = Directory Manager only
  3. Compensating control

    If the upstream code fix cannot be applied immediately, enforce server-side ACLs or other access controls to prevent non-admin users from modifying the 'aci' attribute (deny write for authenticated/non-privileged users). Limit access to management interfaces and restrict administrative privileges to trusted accounts/IPs.

  4. Operational

    Audit existing directory entries for unexpected or permissive ACIs (search for ACIs containing targetattr!="userPassword" or targetattr="*") and remove or correct them. Monitor and review recent changes to the 'aci' attribute for unauthorized modifications.

Event History

Jun 17, 2026
Data Sourced
via Red Hat·01:47 PM
DescriptionSeverityAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of REDHAT-BUG-2489835?

The severity of REDHAT-BUG-2489835 is classified as low.

2

What type of vulnerability is REDHAT-BUG-2489835?

REDHAT-BUG-2489835 is classified as a buffer overflow vulnerability.

3

How do I fix REDHAT-BUG-2489835?

To fix REDHAT-BUG-2489835, ensure that you update to the latest version of the 389 Directory Server package.

4

What specific function is affected in REDHAT-BUG-2489835?

The affected function in REDHAT-BUG-2489835 is __aclp__normalize_acltxt() located in aclparse.c.

5

When was REDHAT-BUG-2489835 published?

REDHAT-BUG-2489835 was published on June 17, 2026.

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