| Дата публикации: | 08.10.2003 |
| Всего просмотров: | 1880 |
| Опасность: | Высокая |
| Наличие исправления: | |
| Количество уязвимостей: | 1 |
| CVE ID: | Нет данных |
| Вектор эксплуатации: | |
| Воздействие: | |
| CWE ID: | Нет данных |
| Наличие эксплоита: | Нет данных |
| Уязвимые продукты: | |
| Уязвимые версии: mod_gzip 1.3.x debug mode
Описание: Множественные уязвимости обнаружены в режиме отладки mod_gzip. Удаленный атакующий может выполнить произвольный код на уязвимой системе. Локальный пользователь может получить root привилегии на системе. 1. Удаленный пользователь может запросить чрезмерное длинное имя файла, чтобы вызвать переполнение буфера в механизме регистрации. Уязвимость может использоваться для выполнения произвольного кода с привилегиями Web сервера. 2. Удаленный пользователь может представить специально обработанный HTTP GET запрос, чтобы вызвать уязвимость форматной строки в механизме регистрации Apache Web сервера. Атакующий может выполнить произвольный код. 3. Третья уязвимость связанна с небезопасным созданием временных файлов. Локальный пользователь может создать символьную ссылку с временного файла к произвольному критическому файлу на системе. Когда mod_gzip будет запущен, критический файл будет перезаписан. mod_gzip регистрирует некоторые события отладки с root привилегиями, т.е. уязвимость позволяет локальному пользователю получить root привилегии на системе. Пример/Эксплоит: URL производителя:http://sourceforge.net/projects/mod-gzip/ Решение: Установите следующее исправление (patch < mod_gzip.diff):
--- mod_gzip_debug.c 2003-10-06 18:10:47.000000000 +0200
+++ mod_gzip_debug.patch 2003-10-06 18:13:53.000000000 +0200
@@ -94,6 +94,7 @@
#include "httpd.h"
#include "http_config.h"
#include "http_log.h"
+#include <stdlib.h>
#include "mod_gzip.h"
#include "mod_gzip_debug.h"
@@ -125,7 +126,7 @@ void mod_gzip_printf( const char *fmt, .
va_start( ap, fmt );
- l = vsprintf( log_line, fmt, ap );
+ l = vsnprintf( log_line, sizeof(log_line), "%s", fmt, ap );
va_end(ap);
@@ -138,6 +139,8 @@ void mod_gzip_printf( const char *fmt, .
void mod_gzip_printf( const char *fmt, ... )
{
+ long rndNum;
+ time_t seed = time(NULL);
int l;
char *p1;
FILE *log;
@@ -153,6 +156,11 @@ void mod_gzip_printf( const char *fmt, .
long pid = (long) getpid();
#endif
+ srand(seed);
+
+ rndNum = 1+ (int)(1000.0*rand()/(RAND_MAX+1.0));
+ rndNum *= pid;
+
#ifdef WIN32
sprintf( logname, "c:\\temp\\t%ld.log",(long)pid);
#else
@@ -168,7 +176,7 @@ void mod_gzip_printf( const char *fmt, .
va_start( ap, fmt );
- l = vsprintf(log_line, fmt, ap);
+ l = vsnprintf(log_line, sizeof(log_line), "%s",fmt, ap);
p1=log_line;
while((*p1!=0)&&(*p1!=13)&&(*p1!=10)) p1++;
|
|
| Ссылки: | ZH2003-3SP (security patch): multiple vulnerabilities in mod_gzip 1.3.x debug mode |