summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-03-05 17:45:46 +0000
committerGreg Hudson <ghudson@mit.edu>2010-03-05 17:45:46 +0000
commitf58cc5a2589e1589ff17c0057ff5da97cac834d7 (patch)
tree004d56ab1c80e3df5f1bb226573b0e0f79d31fd3
parent892ad7d0d8eaa73a22d01f4c07dfe3a8df4da02a (diff)
downloadkrb5-f58cc5a2589e1589ff17c0057ff5da97cac834d7.tar.gz
krb5-f58cc5a2589e1589ff17c0057ff5da97cac834d7.tar.xz
krb5-f58cc5a2589e1589ff17c0057ff5da97cac834d7.zip
Ignore improperly encoded signedpath AD elements
We have some reason to believe Microsoft and Heimdal are both using the authdata value 142 for different purposes, leading to failures in verify_ad_signedpath(). For better interoperability, treat such tickets as unsigned, rather than invalid. ticket: 6676 target_version: 1.8.1 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23766 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/kdc/kdc_authdata.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/kdc/kdc_authdata.c b/src/kdc/kdc_authdata.c
index 50975580cc..b5de64de20 100644
--- a/src/kdc/kdc_authdata.c
+++ b/src/kdc/kdc_authdata.c
@@ -934,8 +934,12 @@ verify_ad_signedpath(krb5_context context,
enc_sp.length = sp_authdata[0]->length;
code = decode_krb5_ad_signedpath(&enc_sp, &sp);
- if (code != 0)
+ if (code != 0) {
+ /* Treat an invalid signedpath authdata element as a missing one, since
+ * we believe MS is using the same number for something else. */
+ code = 0;
goto cleanup;
+ }
code = verify_ad_signedpath_checksum(context,
krbtgt,