Public Vulnerability Reports

Multiple Vendor Kerberos kadmind Rename Principal Buffer Overflow Vulnerability

06.26.07

BACKGROUND

Kerberos is a network authentication protocol used in client-server systems to provide user authentication by using a ticket-based system. kadmind is the Kerberos administration server and is used to configure principals and policies on the Kerberos server, such as changing a password. More information can be found via the URL shown below.

http://www.mit.edu/afs/athena/astaff/project/kerberos/

DESCRIPTION

Remote exploitation of a buffer overflow vulnerability within MIT Kerberos kadmind allows attackers to execute arbitrary code with the privileges of the running service, usually root.

The vulnerability specifically exists within the code responsible for handling requests to rename principals. The rename_principal_2_svc function fails to properly bounds-check user-supplied data before copying it to a fixed-size stack buffer. The vulnerable code is shown below.

 542 generic_ret * 543 rename_principal_2_svc(rprinc_arg *arg, struct svc_req *rqstp) 544 { 545 static generic_ret ret; 546 char *prime_arg1, 547 *prime_arg2; 548 char prime_arg[BUFSIZ]; ... 570 if (krb5_unparse_name(handle->context, arg->src, &prime_arg1) || 571 krb5_unparse_name(handle->context, arg->dest, &prime_arg2)) { 572 ret.code = KADM5_BAD_PRINCIPAL; 573 goto exit_func; 574 } 575 sprintf(prime_arg, "%s to %s", prime_arg1, prime_arg2); 

On lines 570 and 571 attacker supplied data is extracted from the kadmind server context. The buffer overflow occurs on line 575 when concatenating the source and destination principal names with the static text " to ".

ANALYSIS

Exploitation allows attackers to execute arbitrary code with the privileges of the running service, usually root.

Although the functionality where the vulnerability lies is designed to require administrator privileges, the problem actually occurs prior to credential verification. As a result, only a valid user session is required to exploit this vulnerability.

The kadmind server runs on the master Kerberos server, which holds the KDC principal and policy database. As such, a compromise of this server could lead to a compromise of multiple hosts that use the server for authentication.

It should be noted that while Fedora CORE 6 was used for testing, code execution is not possible as it has been compiled with the "FORTIFY_SOURCE" compiler flag.

DETECTION

iDefense confirmed the existence of this vulnerability within MIT Kerberos 1.5-21 as distributed with the Fedora CORE 6 Linux distribution. It has also been confirmed via source code review to exist in version 1.5.3 and version 1.6.1. All other distributions, as well as those for other computing platforms are suspected to be vulnerable.

WORKAROUND

iDefense is currently unaware of any effective workaround for this issue.

VENDOR RESPONSE

The MIT Kerberos team has made patches available to address this vulnerability. For more information consult their advisory at the following URL.

http://web.mit.edu/Kerberos/advisories/MITKRB5-SA-2007-005.txt

CVE INFORMATION

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2007-2798 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.

DISCLOSURE TIMELINE

05/15/2007 Initial vendor notification
05/15/2007 Initial vendor response
06/26/2007 Coordinated public disclosure

CREDIT

The discoverer of this vulnerability wishes to remain anonymous.

Get paid for vulnerability research
http://labs.idefense.com/methodology/vulnerability/vcp.php

Free tools, research and upcoming events
http://labs.idefense.com/

LEGAL NOTICES

Copyright © 2007 Verisign, Inc.

Permission is granted for the redistribution of this alert electronically. It may not be edited in any way without the express written consent of iDefense. If you wish to reprint the whole or any part of this alert in any other medium other than electronically, please e-mail customer service for permission.

Disclaimer: The information in the advisory is believed to be accurate at the time of publishing based on currently available information. Use of the information constitutes acceptance for use in an AS IS condition. There are no warranties with regard to this information. Neither the author nor the publisher accepts any liability for any direct, indirect, or consequential loss or damage arising from use of, or reliance on, this information.