GNU Mailutils 0.6 mail header_get_field_name() Buffer Overflow Vulnerability iDEFENSE Security Advisory 05.25.05 http://www.idefense.com/application/poi/display?type=vulnerabilities May 25, 2005 I. BACKGROUND The GNU mailutils package is a collection of mail-related utilities, including local and remote mailbox access services. More information is available at the following site: http://www.gnu.org/software/mailutils/mailutils.html II. DESCRIPTION Exploitation of a buffer overflow vulnerability in the mail binary of the GNU Projects Mailutils package may allow a remote attacker to execute commands with the privileges of the targeted user. Due to a coding error in the library function header_get_field_name() in mailbox/header.c, a buffer overflow condition exists. The code below checks if the value of 'len' is greater than the value of 'buflen', but always sets the value of 'len' to be the same, effectively performing no instruction. len = (len > buflen) ? len : len; This code will set 'len' to the value of 'buflen' if 'len' is greater than 'buflen'. This typo allows the buffer overflow to occur. The code should be: len = (len > buflen) ? buflen : len; III. ANALYSIS Successful exploitation of the vulnerability would allow an email sent by a remote user to cause a buffer overflow, allowing execution of arbitrary commands in the context of the targeted user. Access to a user account may allow further escalation of privileges via local attacks. IV. DETECTION iDEFENSE Labs has verified the existence of this vulnerability in versions 0.5 and 0.6 of the GNU Mailutils package. It is suspected that any previous versions may also be affected. It should be noted that the mail command from the GNU mailutils package is NOT the default mail client on the vast majority of Linux installations. The mailx mail client is by far much more likely to be installed. The mailx mail client is typically installed in /bin/mail, whereas the GNU mailutils mail client is typically installed in /usr/bin/mail. These values are not universal, and additional verification should be performed to determine which version you have installed. V. WORKAROUND When possible, run client software as a regular user with limited access to system resources. This may limit the immediate consequences of client-side vulnerabilities. VI. VENDOR RESPONSE This vulnerability has been fixed in GNU mailutils 0.6.90 which is available for download at: ftp://alpha.gnu.org/gnu/mailutils/ VII. CVE INFORMATION The Common Vulnerabilities and Exposures (CVE) project has assigned the name CAN-2005-1520 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org), which standardizes names for security problems. VIII. DISCLOSURE TIMELINE 05/12/2005 Initial vendor notification 05/12/2005 Initial vendor response 05/25/2005 Public disclosure IX. CREDIT infamous41md@hotpop.com is credited with the discovery of this vulnerability. Get paid for vulnerability research http://www.idefense.com/poi/teams/vcp.jsp Free tools, research and upcoming events http://labs.idefense.com X. LEGAL NOTICES Copyright (c) 2005 iDEFENSE, 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 email customerservice@idefense.com 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. _______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/