Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 636335 - (CVE-2010-1322) CVE-2010-1322 krb5: KDC uninitialized pointer crash in authorization data handling (MITKRB5-SA-2010-006)
CVE-2010-1322 krb5: KDC uninitialized pointer crash in authorization data han...
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
public=20101005,reported=20100921,sou...
: Security
Depends On: 636336 636337
Blocks:
  Show dependency treegraph
 
Reported: 2010-09-21 18:40 EDT by Vincent Danen
Modified: 2015-08-19 04:55 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-11-11 03:10:59 EST
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:0863 normal SHIPPED_LIVE Important: krb5 security update 2010-11-09 13:55:21 EST

  None (edit)
Description Vincent Danen 2010-09-21 18:40:30 EDT
When the MIT krb5 KDC receives certain Kerberos TGS request messages, it may dereference an uninitialized pointer while processing authorization data, causing a crash, or in rare cases, unauthorized information disclosure, ticket modification, or execution of arbitrary code.  The crash may be triggered by legitimate requests.

This is an implementation vulnerability in MIT krb5, and not a vulnerability in the Kerberos protocol.

An authenticated remote attacker can cause the MIT krb5 KDC process to crash, resulting in a denial of service.  In rare cases, the attacker can theoretically induce unauthorized information disclosure, ticket modification, or the execution of arbitrary code.

The denial of service may be triggered by legitimate requests produced by Windows Active Directory clients.  No exploit code is known to exist that would cause information disclosure, ticket modification, or arbitrary code execution.

This vulnerability only exists in krb5-1.8 through to version 1.8.3; the affected code did not exist in earlier versions of krb5.  It has been corrected in the 1.8.4 release.

The patch is available at: http://web.mit.edu/kerberos/advisories/2010-006-patch.txt

The upstream advisory will be available at http://web.mit.edu/kerberos/advisories/MITKRB5-SA-2010-006.txt

Acknowledgements:

Red Hat would like to thank the MIT Kerberos Team for reporting this issue. Upstream acknowledges Mike Roszkowski as the original reporter.
Comment 2 Vincent Danen 2010-09-21 18:45:15 EDT
This does not affect Red Hat Enterprise Linux 3, 4, or 5, nor does it affect Fedora (all provide versions of krb5 1.7.x or earlier, which does not contain the vulnerable code).  It does affect Red Hat Enterprise Linux 6.
Comment 5 Vincent Danen 2010-09-21 18:55:44 EDT
The upstream provided patch:

diff --git a/src/kdc/kdc_authdata.c b/src/kdc/kdc_authdata.c
index b5de64d..cc44e29 100644
--- a/src/kdc/kdc_authdata.c
+++ b/src/kdc/kdc_authdata.c
@@ -495,7 +495,7 @@ merge_authdata (krb5_context context,
                 krb5_boolean copy,
                 krb5_boolean ignore_kdc_issued)
 {
-    size_t i, nadata = 0;
+    size_t i, j, nadata = 0;
     krb5_authdata **authdata = *out_authdata;

     if (in_authdata == NULL || in_authdata[0] == NULL)
@@ -529,16 +529,16 @@ merge_authdata (krb5_context context,
         in_authdata = tmp;
     }

-    for (i = 0; in_authdata[i] != NULL; i++) {
+    for (i = 0, j = 0; in_authdata[i] != NULL; i++) {
         if (ignore_kdc_issued &&
             is_kdc_issued_authdatum(context, in_authdata[i], 0)) {
             free(in_authdata[i]->contents);
             free(in_authdata[i]);
         } else
-            authdata[nadata + i] = in_authdata[i];
+            authdata[nadata + j++] = in_authdata[i];
     }

-    authdata[nadata + i] = NULL;
+    authdata[nadata + j] = NULL;

     free(in_authdata);
Comment 6 Tomas Hoger 2010-10-05 16:08:51 EDT
Public now via:
  http://web.mit.edu/Kerberos/advisories/MITKRB5-SA-2010-006.txt
Comment 7 errata-xmlrpc 2010-11-10 13:51:27 EST
This issue has been addressed in following products:

  Red Hat Enterprise Linux 6

Via RHSA-2010:0863 https://rhn.redhat.com/errata/RHSA-2010-0863.html
Comment 8 Vincent Danen 2010-11-15 13:05:00 EST
Statement:

This issue did not affect Red Hat Enterprise Linux 3, 4, or 5.  It was addressed in Red Hat Enterprise Linux 6 via https://rhn.redhat.com/errata/RHSA-2010-0863.html.

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