Ethical Hacking Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package. | Computer Forensics Training at InfoSec Institute Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors. |

| Subject: | [UNIX] GNU Mailutils Multiple Vulnerabilities (Buffer Overflows, Format String, DoS) |
|---|---|
| Date: | 26 May 2005 18:04:26 +0200 |
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com - - promotion The SecuriTeam alerts list - Free, Accurate, Independent. Get your security news from a reliable source. http://www.securiteam.com/mailinglist.html - - - - - - - - - GNU Mailutils Multiple Vulnerabilities (Buffer Overflows, Format String, DoS) ------------------------------------------------------------------------ SUMMARY "GNU <http://www.gnu.org/software/mailutils/> Mailutils is a collection of mail-related utilities. At the core of Mailutils is libmailbox, a library which provides access to various forms of mailbox files (including remote mailboxes via popular protocols). It also provides support for parsing of RFC-822 style messages and MIME support." Buffer overflow and a format string vulnerabilities allow attackers to execute arbitrary code from remote using the GNU Mailutils programs. A denial of service vulnerability allows attackers to stop the server running GNU Mailutils from responding. DETAILS Vulnerable Systems: * GNU Mailutils version 0.6 * GNU Mailutils version 0.5 Immune Systems: * GNU Mailutils version 0.6.90 Format String: Remote exploitation of a format string vulnerability in the imap4d server allow an unauthenticated attacker to execute arbitrary code. The imap4d server allows remote users to retrieve their email via the Internet Message Access Protocol, Version 4rev1 as specified in RFC3501. This is a client/server protocol supported by a large number of email clients on multiple platforms. The vulnerability specifically exists in the handling of the command tag supplied by the remote user. Each client command sent to the server is prefixed with an identifier which is typically a short alphanumeric string such as "A0001". A different tag is generated by the client for each command. When the server has completed the task, with either success or failure, the server will send a reply with the same tag. Code Snips: asprintf (&tempbuf, "%s %s%s %s\r\n", command->tag, sc2string (rc), command->name, format); va_start (ap, format); vasprintf (&buf, tempbuf, ap); The asprintf() command allocates a new string, created by joining the values of the tag supplied by the remote user, the text version of the result code, the name of the command being executed, and the original format string supplied to this function. The effect of this line is to generate a new format string string which is used to generate the output. As there is no check for format specifiers in the user supplied input, a remotely exploitable condition occurs. Successful exploitation allows remote unauthenticated attackers to execute arbitrary commands on an affected system as the 'daemon' user. Sending the following command to an affected server will cause the current connection to die when the fork()ed instance of the server crashes: %n%n%n%n%n die. The '%n' format specifier writes the number of characters in the output string generated so far to the memory address pointed at by the current argument. In this case, the process attempts to write the value 0 to the next 5 memory locations in the argument list. As some of these arguments are not valid pointers, the server dies attempting to write to an invalid memory location. This will not cause a denial of service, as a new instance of the server is spawned for each accepted connection. Information about the values on the stack below the current position can be gained by sending a string similar to: %p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p info Using these format specifiers it is possible to construct a sequence of commands which will cause arbitrary values to be written to arbitrary locations, allowing the execution of arbitrary code. FETCH Command Resource Consumption DoS: Remote exploitation of an input validation in the FETCH command of the imap4d server allow an authenticated remote attacker to perform a denial of service against an affected system. The vulnerability specifically exists in the handling of the sequence range argument to the FETCH command. A sequence range such as 1:4294967294 will cause the the spawned instance of the server to enter what is effectively an infinite loop, allocating memory on each cycle. Successful exploitation of the vulnerability would allow a remote authenticated used to cause the system hosting the imap4d to become unresponsive due to lack of memory resources. On some operating systems, such as Linux, processes will be killed by the kernel out of memory manager. imap4d fetch_io Heap overflow: Remote exploitation of an integer overflow in the fetch_io function of the imap4d server allow an authenticated remote attacker to execute arbitrary code. The vulnerability specifically exists in the handling of partial message requests. By supplying a value for the 'END' parameter equal to 2 less than the largest value an integer on the affected system can hold, it is possible to cause the server to allocate a much smaller chunk of memory. An overflow can occur when this memory chunk is referenced. Successful exploitation of this vulnerability could allow a remote authenticated used execute arbitrary commands in the context of the 'daemon' user. As the service is forked from a parent process, it would be possible for a remote attacker to attempt to exploit this vulnerability multiple times, although each failed attempt which caused a crash would be logged. header_get_field_name() Buffer Overflow: 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; 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. 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. CVE Information: <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-1520> CAN-2005-1520 <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-1521> CAN-2005-1521 <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-1522> CAN-2005-1522 <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-1523> CAN-2005-1523 Disclosure Timeline: 05/12/2005 - Initial vendor notification 05/12/2005 - Initial vendor response 05/25/2005 - Public disclosure ADDITIONAL INFORMATION The information has been provided by <mailto:idlabs-advisories@idefense.com> idlabs. The original article can be found at: <http://www.idefense.com/application/poi/display?id=246&type=vulnerabilities> http://www.idefense.com/application/poi/display?id=246&type=vulnerabilities, <http://www.idefense.com/application/poi/display?id=247&type=vulnerabilities> http://www.idefense.com/application/poi/display?id=247&type=vulnerabilities, <http://www.idefense.com/application/poi/display?id=248&type=vulnerabilities> http://www.idefense.com/application/poi/display?id=248&type=vulnerabilities, <http://www.idefense.com/application/poi/display?id=249&type=vulnerabilities> http://www.idefense.com/application/poi/display?id=249&type=vulnerabilities ======================================== This bulletin is sent to members of the SecuriTeam mailing list. To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com ==================== ==================== DISCLAIMER: The information in this bulletin is provided "AS IS" without warranty of any kind. In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [EXPL] Exim Buffer Overflow Exploit (Local, dns_build_reverse), SecuriTeam |
|---|---|
| Next by Date: | [NT] Altiris Deployment Server Design Flaw, SecuriTeam |
| Previous by Thread: | [EXPL] Exim Buffer Overflow Exploit (Local, dns_build_reverse), SecuriTeam |
| Next by Thread: | [NT] Altiris Deployment Server Design Flaw, SecuriTeam |
| Indexes: | [Date] [Thread] [Top] [All Lists] |