[31657] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit [krb5-1.22]: Check for keyed checksums in CAMMAC verifiers

daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Mon Nov 9 12:00:56 2026

From: ghudson@mit.edu
To: cvs-krb5@mit.edu
Message-Id: <20261109170041.147B6105839@krbdev.mit.edu>
Date: Mon,  9 Nov 2026 12:00:41 -0500 (EST)
MIME-Version: 1.0
Reply-To: krbdev@mit.edu
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/d97f92d1afd8c44b84c43ef16eb3eb1d7ed879b4
commit d97f92d1afd8c44b84c43ef16eb3eb1d7ed879b4
Author: Greg Hudson <ghudson@mit.edu>
Date:   Sun Aug 2 21:39:23 2026 -0400

    Check for keyed checksums in CAMMAC verifiers
    
    In libkrb5's check_svcver() and in the KDC's cammac_check_kdcver(),
    return an error if the verifier uses an unkeyed checksum.
    
    CVE-2026-71199:
    
    In MIT krb5 release 1.14 and later (since authentication indicator
    support was added), an authenticated attacker can bypass
    authentication indicator requirements using an unkeyed checksum in the
    CAMMAC authdata container.  Discovered by Claude and Ada Logics, and
    by Alejandro Pacheco.
    
    (cherry picked from commit 18142c9c3a3c2e16d8469aff342b02a28f0b468c)
    
    ticket: 9228
    version_fixed: 1.22.3

 src/kdc/cammac.c               | 2 +-
 src/lib/krb5/krb/cammac_util.c | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/kdc/cammac.c b/src/kdc/cammac.c
index df5fe966f..c0d5b6f66 100644
--- a/src/kdc/cammac.c
+++ b/src/kdc/cammac.c
@@ -144,7 +144,7 @@ cammac_check_kdcver(krb5_context context, krb5_cammac *cammac,
 
     memset(&tgtkey, 0, sizeof(tgtkey));
 
-    if (ver == NULL)
+    if (ver == NULL || !krb5_c_is_keyed_cksum(ver->checksum.checksum_type))
         goto cleanup;
 
     /* Fetch the krbtgt key indicated by the KDC verifier.  Only allow the
diff --git a/src/lib/krb5/krb/cammac_util.c b/src/lib/krb5/krb/cammac_util.c
index ab9da05a7..32748e4ae 100644
--- a/src/lib/krb5/krb/cammac_util.c
+++ b/src/lib/krb5/krb/cammac_util.c
@@ -44,6 +44,8 @@ check_svcver(krb5_context context, const krb5_cammac *cammac,
 
     if (ver == NULL)
         return EINVAL;
+    if (!krb5_c_is_keyed_cksum(ver->checksum.checksum_type))
+        return KRB5KRB_AP_ERR_BAD_INTEGRITY;
 
     ret = encode_krb5_authdata(cammac->elements, &der_authdata);
     if (ret)
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post