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.




Network Security Bugtraq
[Top] [All Lists]

inetutils tftp client, DNS resolving bofs

Subject: inetutils tftp client, DNS resolving bofs
Date: Mon, 25 Oct 2004 20:56:39 -0400
Subject:

GNU tftp client remote buffer overflows.

++++++++++++++++++++++++++++++++++++++++++++

Product:

The tftp client that comes with the inetutils package.  It's found on all unices
I know of.

++++++++++++++++++++++++++++++++++++++++++++

Vulnerable:

inetutils-1.4.2 was the only version audited.

++++++++++++++++++++++++++++++++++++++++++++

Summary:

Untrusted data from DNS resolved hostname is copied into finite static buffers
without any bounds checking. We can overflow several buffers located in the
.bss.  Also located in the .bss are function pointers used to implement ftp
commands, so exploitation with code execution is possible.

++++++++++++++++++++++++++++++++++++++++++++

Details:

The overflows all occur thanks to gethostbyname() returned data.  Instead of
copying that data using the length of the destination buffer, the length of the
source buffer is used instead, or no length at all in the case of strcpy().  An
attacker could configure their DNS server maliciously, or a local attacker on a
LAN could spoof replies to neighbors to exploit this.


main.c:227:             bcopy(host->h_addr, &peeraddr.sin_addr, host->h_length);
main.c:228:             strcpy(hostname, host->h_name);
main.c:366:             bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr, 
hp->h_length);  
main.c:369:             strcpy(hostname, hp->h_name);
main.c-457:         bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr, 
hp->h_length);
main.c:461:             strcpy(hostname, hp->h_name);

++++++++++++++++++++++++++++++++++++++++++++

Vendor:

Was notified weeks ago, and has corrected the problem in new version.


-- 
-sean

<Prev in Thread] Current Thread [Next in Thread>
  • inetutils tftp client, DNS resolving bofs, infamous41md <=