Security Lab

Несколько уязвимостей в Surfboard httpd сервере

Дата публикации:01.12.2003
Всего просмотров:1284
Опасность:
Средняя
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Отказ в обслуживании
Раскрытие важных данных
Раскрытие системных данных
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Surfboard httpd 1.x
Уязвимые версии: Surfboard 1.1.8

Описание: Уязвимость обнаружена в Surfboard httpd. Удаленный пользователь может просматривать файлы на системе. Удаленный пользователь может вызвать чрезмерное использование CPU.

Удаленный пользователь может представить URL, содержащий символы обхода каталога, чтобы просматривать произвольные файлы на системе с привилегиями Surfboard httpd процесса.

Также удаленный атакующий может подключится к серверу используя telnet и оборвать подключение, чтобы заставить сервер использовать 100% CPU.

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

http://server/../etc/passwd
http://ser ver/../../../etc/passwd

URL производителя: http://surfd.sourceforge.net/

Решение:Установите следующее исправление:

--- surfboard.c 2001-04-11 19:23:36.000000000 +0000
+++ 1.c 2003-11-27 18:38:28.000000000 +0000
@@ -155,7 +155,7 @@
     */
     while(1)
     {
-      while(read(s, &c, 1)<1);
+      if(read(s, &c, 1)<1) break;
       if(c=='\r') { continue; }
       if(c=='\n' && oldc=='\n') { break; }
       oldc=c;
@@ -167,7 +167,7 @@
   sprintf(buf, "Asked for %s", rawreq);
   log_msg(LOG_DEBUG, buf);
 
-  if(strstr(rawreq, "..")<strstr(rawreq, "?") || strstr(rawreq,
"`")<strstr(rawreq, "?"))
+  if((!strstr(rawreq, "?")&&strstr(rawreq, "..")) || strstr(rawreq,
"..")<strstr(rawreq, "?") || strstr(rawreq, "`")<strstr(rawreq, "?"))
   {
     log_msg(LOG_ERR, "Relative path and/or shell escape - ATTACK ATTEMPT");
     add2header(http_header, "HTTP/1.1 400 Bad Request\r\n");
Ссылки: Surfboard <= 1.1.8 vulns