Skip to content

Commit

Permalink
MITKRB5-SA-2010-001 CVE-2010-0283 KDC denial of service
Browse files Browse the repository at this point in the history
Code introduced in krb5-1.7 can cause an assertion failure if a
KDC-REQ is internally inconsistent, specifically if the ASN.1 tag
doesn't match the msg_type field.  Thanks to Emmanuel Bouillon (NATO
C3 Agency) for discovering and reporting this vulnerability.

ticket: 6662
tags: pullup
target_version: 1.8

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23724 dc483132-0cff-0310-8789-dd5450dbe970
  • Loading branch information
tlyu committed Feb 16, 2010
1 parent 373a235 commit aef4a62
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
5 changes: 5 additions & 0 deletions src/kdc/do_as_req.c
Expand Up @@ -139,6 +139,11 @@ process_as_req(krb5_kdc_req *request, krb5_data *req_pkt,
session_key.contents = 0;
enc_tkt_reply.authorization_data = NULL;

if (request->msg_type != KRB5_AS_REQ) {
status = "msg_type mismatch";
errcode = KRB5_BADMSGTYPE;
goto errout;
}
errcode = kdc_make_rstate(&state);
if (errcode != 0) {
status = "constructing state";
Expand Down
2 changes: 2 additions & 0 deletions src/kdc/do_tgs_req.c
Expand Up @@ -143,6 +143,8 @@ process_tgs_req(krb5_data *pkt, const krb5_fulladdr *from,
retval = decode_krb5_tgs_req(pkt, &request);
if (retval)
return retval;
if (request->msg_type != KRB5_TGS_REQ)
return KRB5_BADMSGTYPE;

/*
* setup_server_realm() sets up the global realm-specific data pointer.
Expand Down
2 changes: 1 addition & 1 deletion src/kdc/fast_util.c
Expand Up @@ -384,7 +384,7 @@ kdc_fast_handle_error(krb5_context context,
krb5_data *encoded_e_data = NULL;

memset(outer_pa, 0, sizeof(outer_pa));
if (!state->armor_key)
if (!state || !state->armor_key)
return 0;
fx_error = *err;
fx_error.e_data.data = NULL;
Expand Down

0 comments on commit aef4a62

Please sign in to comment.