Bug 605448 - (CVE-2010-0211) CVE-2010-0211 openldap: modrdn processing uninitialized pointer free
CVE-2010-0211 openldap: modrdn processing uninitialized pointer free
Status: CLOSED ERRATA
Product: Security Response
Classification: Other
Component: vulnerability (Show other bugs)
unspecified
All Linux
high Severity high
: ---
: ---
Assigned To: Red Hat Product Security
impact=important,public=20100719,repo...
: Security
Depends On: 606369 606374 606375 606377 606399 606400 615903
Blocks:
  Show dependency treegraph
 
Reported: 2010-06-17 20:20 EDT by Vincent Danen
Modified: 2015-07-31 02:27 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-06-05 02:34:14 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2010:0542 normal SHIPPED_LIVE Moderate: openldap security update 2010-07-20 11:42:08 EDT
Red Hat Product Errata RHSA-2010:0543 normal SHIPPED_LIVE Moderate: openldap security update 2010-07-20 12:34:29 EDT

  None (edit)
Description Vincent Danen 2010-06-17 20:20:39 EDT
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 segfault or abort.

Quoting the report:

In the function modrdn.c:386:slap_modrdn2mods() a call is made to
448:*desc->ad_type->sat_equality->smr_normalize() without checking its
return value. In this case the call fails and leaves mod_tmp->sml_nvalues
uninitialized which leads to an invalid free() later in
modrdn.c:202:slap_mods_free(). The breakdown of smr_normalize() is caused
by invalid UTF-8 sequences, which are passed to the software via
hex-formatted strings. It could be possible to insert and execute malicious
code by careful manipulation of the program state prior to triggering the
vulnerability. At least with a vanilla compilation of 2.4.22 it proved
possible to freely control the invalid pointer being freed. For example,
the following kind of log message is produced:

    * ** glibc detected *** /usr/sbin/slapd: double free or corruption (out): 0x002ce400 ***

This has been reportedly tested against upstream 2.4.22 as well as 2.4.11 (Debian) and 2.4.21 (Ubuntu).

Acknowledgements:

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.
Comment 7 Tomas Hoger 2010-06-21 09:01:14 EDT
In openldap 2.4.x, this issue is pre-auth.  In older versions (such as those shipped with RHEL-4 or RHEL-5), this problem can only be triggered by 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.

glibc malloc checks mitigate the impact of the invalid free flaw.
Comment 16 Tomas Hoger 2010-07-19 04:52:39 EDT
Fixed upstream in 2.4.23.  Upstream bug report is public now:
  http://www.openldap.org/its/index.cgi/Software%20Bugs?id=6570
Comment 18 errata-xmlrpc 2010-07-20 11:42:11 EDT
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
Comment 19 errata-xmlrpc 2010-07-20 12:34:51 EDT
This issue has been addressed in following products:

  Red Hat Enterprise Linux 4

Via RHSA-2010:0543 https://rhn.redhat.com/errata/RHSA-2010-0543.html

Note You need to log in before you can comment on or make changes to this bug.