krb5 commit [krb5-1.9]: PKINIT null pointer deref [CVE-2013-1415]

Tom Yu tlyu at MIT.EDU
Tue Apr 23 17:19:24 EDT 2013


https://github.com/krb5/krb5/commit/6b415d1471adc157eea319592a5fcc1c577876ce
commit 6b415d1471adc157eea319592a5fcc1c577876ce
Author: Xi Wang <xi.wang at gmail.com>
Date:   Thu Feb 14 18:17:40 2013 -0500

    PKINIT null pointer deref [CVE-2013-1415]
    
    Don't dereference a null pointer when cleaning up.
    
    The KDC plugin for PKINIT can dereference a null pointer when a
    malformed packet causes processing to terminate early, leading to
    a crash of the KDC process.  An attacker would need to have a valid
    PKINIT certificate or have observed a successful PKINIT authentication,
    or an unauthenticated attacker could execute the attack if anonymous
    PKINIT is enabled.
    
    CVSSv2 vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:P/RL:O/RC:C
    
    This is a minimal commit for pullup; style fixes in a followup.
    [kaduk at mit.edu: reformat and edit commit message]
    
    (cherry picked from commit c773d3c775e9b2d88bcdff5f8a8ba88d7ec4e8ed)
    
    ticket: 7619 (new)
    version_fixed: 1.9.5
    status: resolved

 src/plugins/preauth/pkinit/pkinit_crypto_openssl.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
index bb8f036..51103e8 100644
--- a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
+++ b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
@@ -2883,7 +2883,7 @@ pkinit_check_kdc_pkid(krb5_context context,
     pkiDebug("found kdcPkId in AS REQ\n");
     is = d2i_PKCS7_ISSUER_AND_SERIAL(NULL, &p, (int)pkid_len);
     if (is == NULL)
-        goto cleanup;
+        return retval;
 
     status = X509_NAME_cmp(X509_get_issuer_name(kdc_cert), is->issuer);
     if (!status) {
@@ -2893,7 +2893,6 @@ pkinit_check_kdc_pkid(krb5_context context,
     }
 
     retval = 0;
-cleanup:
     X509_NAME_free(is->issuer);
     ASN1_INTEGER_free(is->serial);
     free(is);


More information about the cvs-krb5 mailing list