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

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

krb5 commit: Check lengths in xdr_krb5_key_data()

daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Tue Apr 22 15:10:40 2025

From: ghudson@mit.edu
To: cvs-krb5@mit.edu
Message-Id: <20250422191032.EA51B101CCE@krbdev.mit.edu>
Date: Tue, 22 Apr 2025 15:10:32 -0400 (EDT)
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/e195747d2f8a8e1cd1694d768dba9265439228d0
commit e195747d2f8a8e1cd1694d768dba9265439228d0
Author: Greg Hudson <ghudson@mit.edu>
Date:   Wed Apr 9 20:19:02 2025 -0400

    Check lengths in xdr_krb5_key_data()
    
    Ensure that xdr_krb5_key_data() does not produce an inconsistent
    representation if the serialized key_data_contents fields do not match
    the corresponding byte array lengths.  (This function is only used by
    libkadm5srv to serialize historical key data in per-principal kadmin
    data.)
    
    ticket: 9172 (new)

 src/lib/kadm5/srv/adb_xdr.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/lib/kadm5/srv/adb_xdr.c b/src/lib/kadm5/srv/adb_xdr.c
index b6ffdb8c7..b14cb96ee 100644
--- a/src/lib/kadm5/srv/adb_xdr.c
+++ b/src/lib/kadm5/srv/adb_xdr.c
@@ -36,11 +36,15 @@ xdr_krb5_key_data(XDR *xdrs, krb5_key_data *objp)
     if (!xdr_bytes(xdrs, (char **) &objp->key_data_contents[0],
 		   &tmp, ~0))
 	return FALSE;
+    if (tmp != objp->key_data_length[0])
+	return FALSE;
 
     tmp = (unsigned int) objp->key_data_length[1];
     if (!xdr_bytes(xdrs, (char **) &objp->key_data_contents[1],
 		   &tmp, ~0))
 	return FALSE;
+    if (tmp != objp->key_data_length[1])
+	return FALSE;
 
     /* don't need to copy tmp out, since key_data_length will be set
        by the above encoding. */
_______________________________________________
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