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: | Re: [Full-disclosure] ProFTPD mod_tls pre-authentication buffer overflow |
|---|---|
| Date: | Wed, 29 Nov 2006 10:39:23 +0000 |
Hi Can i get this straight, vendor was notified on the 16th of November, but this vulnerability has been part of VulnDisco since Jan 2006? Is that actually correct? This was known about ten months ago but not disclosed until now? Mark research@gleg.net wrote:
Name: ProFTPD mod_tls pre-authentication buffer overflow Vendor: http://www.proftpd.org Release date: 28 Nov, 2006 Author: Evgeny Legerov <research@gleg.net> I. DESCRIPTION A remote buffer overflow vulnerability has been found in mod_tls module of ProFTPD server. The vulnerability could allow a remote un-authenticated attacker to gain root privileges. II. DETAILS Let's have a look at the code (ProFTPD version 1.3.0): contrib/mod_tls.c: """ static char *tls_x509_name_oneline(X509_NAME *x509_name) { static char buf[256] = {'\0'}; /* If we are using OpenSSL 0.9.6 or newer, we want to use * X509_NAME_print_ex() * instead of X509_NAME_oneline(). */ #if OPENSSL_VERSION_NUMBER < 0x000906000L memset(&buf, '\0', sizeof(buf)); return X509_NAME_oneline(x509_name, buf, sizeof(buf)); #else /* Sigh...do it the hard way. */ BIO *mem = BIO_new(BIO_s_mem()); char *data = NULL; long datalen = 0; int ok; if ((ok = X509_NAME_print_ex(mem, x509_name, 0, XN_FLAG_ONELINE))) [1] datalen = BIO_get_mem_data(mem, &data); if (data) { memset(&buf, '\0', sizeof(buf)); [2] memcpy(buf, data, datalen); buf[datalen] = '\0'; buf[sizeof(buf)-1] = '\0'; BIO_free(mem); return buf; } BIO_free(mem); return NULL; #endif /* OPENSSL_VERSION_NUMBER >= 0x000906000 */ } """ The value of 'datalen' parameter is fully controlled by us (see [1]). On line [2] we will be able to overflow the 'buf' buffer with our data. III. VENDOR RESPONSE Vendor has been notified on Nov 16, 2006 but ProFTPD 1.3.0a is still vulnerable. IV. CREDIT Discovered by Evgeny Legerov. The vulnerability is a part of VulnDisco Pack Professional since Jan, 2006.
-- Mark Wadham e: mark.wadham@areti.net t: +44 (0)20 8315 5800 f: +44 (0)20 8315 5801 Areti Internet Ltd., http://www.areti.net/ =================================================================== Areti Internet Ltd: BS EN ISO 9001:2000 Providing corporate Internet solutions for more than 10 years. =================================================================== _______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [Full-disclosure] New report on Teredo security, Jeroen Massar |
|---|---|
| Next by Date: | [Full-disclosure] iDefense Security Advisory 11.29.06: Horde Kronolith Arbitrary Local File Inclusion Vulnerability, iDefense Labs |
| Previous by Thread: | [Full-disclosure] ProFTPD mod_tls pre-authentication buffer overflow, research |
| Next by Thread: | evince buffer overflow exploit (gv), kspecial |
| Indexes: | [Date] [Thread] [Top] [All Lists] |