Недавно Девид Вагнер провел аудит защиты в Apache
1.3.26 и обнаружил несколько небольших потенциальных уязвимостей во вспомогательных программах, поставляемых с Apache. Наиболее серьезные уязвимости были устранены в 1.3.27. 

Переполнение буфера в support/ab.c:read_connection() 

char servername[1024]; 
static void read_connection(struct connection * c) { 
… 
r = ab_read(c->fd, buffer, sizeof(buffer)); 
… 
char *p, *q; 
p = strstr(c->cbuff, «Server:»); 
q = servername; 
if (p) { 
p += 8; 
while (*p > 32) 
*q++ = *p++; 

*q = 0; 

Воздействие: любой, использующий ab для
соединения со злонамеренным сервером, может быть уязвим. 
Устранено в 1.3.27: http://www.apacheweek.com/features/security-13.

Нарушение состояния операции в support/htpasswd.c:main()

tempfilename = tmpnam(tname_buf); 
ftemp = fopen(tempfilename, «w+»); 
… 
copy_file(ftemp, fpw); 

Воздействие: любой локальный пользователь может читать
и изменять содержание файла с паролями Apache
в то время, когда администратор выполняет htpasswd. 

Нарушение состояния операции в support/htdigest.c:main()

tn = tmpnam(NULL);
if (!(tfp = fopen(tn, "w")))
… …
sprintf(command, «cp %s %s», tn, argv[1]);
system(command); 

Воздействие: любой локальный пользователь может читать
и изменять содержание файла паролями Apache во время, когда администратор выполняет htdigest. 

Уязвимость не устранена в 1.3.27. 

Полностью поддельный запрос system() в support/htdigest.c (см. ниже) Воздействие:
скорее всего никакое, но htdigest нельзя будет вызвать из CGI
сценария и т.п. 

Уязвимость не устранена в 1.3.27. 

Переполнение буфера в support/htdigest.c:main() 

There are many, but here’s one:
 
#define MAX_STRING_LEN 256 
int main(int argc, char *argv[]) { 
char user[MAX_STRING_LEN]; 
strcpy(user, argv[3]); 

Воздействие: cкорее всего никакое, но htdigest нельзя будет вызвать из CGI сценарием и т.п.
Уязвимость не устранена в 1.3.27. 

strncat() некорректно используется в support/ab.c:main() 

char cookie[1024]; 
int main(int argc, char **argv) { 
while ((c = getopt(argc, argv, «…»))) { 
switch (c) { 
case ‘C’: 
strncat(cookie, «Cookie: «, sizeof(cookie)); 
strncat(cookie, optarg, sizeof(cookie)); 
strncat(cookie, «\r\n», sizeof(cookie)); 
break; 

Также нарушены -A, -P и -H. Воздействие: cкорее всего никакое, но ab нельзя будет вызвать из CGI
сценария и т.п. 

Уязвимость устранена в 1.3.27. http://www.apacheweek.com/features/security-13.



Оставить мнение