A vulnerability was found in OpenLDAP during the processing of a modrdn call with a specially crafted destination rdn string. An unauthenticated user could
cause slapd to crash due to a NULL pointer dereference.
Quoting the report:
As with bug CVE-2010-0211 (bug #605448), the crash occurs during a call to smr_normalize, but in this case the call points to IA5StringNormalize which crashes with a null pointer dereference at schema_init.c:2696.
This has been reportedly tested against upstream 2.4.22 as well as 2.4.11 (Debian) and 2.4.21 (Ubuntu).
Red Hat would like to thank CERT-FI for responsibly reporting this flaw, who credit Ilkka Mattila and Tuomas Salomäki for the discovery of the issue.
Upstream commits that look relevant:
And the upstream bug report:
which is currently still private.
This issue affects openldap 2.4.x versions in Fedora / RHEL-6 Beta1. For those openldap versions, this is a pre-auth problem.
This also affects openldap 2.3.x version in RHEL-5, but unlike recent 2.4 versions, the issue can only be triggered by an authenticated user with sufficient privileges to perform modrdn (modify relative distinguished name, or entry rename) operation. selfwrite privilege to an entry is not sufficient.
Older openldap versions as shipped with RHEL-4 and RHEL-3 are not affected by this problem. In those versions, IA5StringValidate() rejects empty string as a valid value for a IA5String attribute syntax, such value is rejected before IA5StringNormalize() is called that may possibly deref NULL pointer.
Upstream patch does not change IA5StringValidate() and rather places additional restriction on the values used in DNs and disallows empty values regardless of the attribute syntax. This additional check may be included in future openldap updates in RHEL-4 and RHEL-3.
Fixed upstream in 2.4.23. Upstream bug report is public now:
This issue has been addressed in following products:
Red Hat Enterprise Linux 5
Via RHSA-2010:0542 https://rhn.redhat.com/errata/RHSA-2010-0542.html