Недавно Девид Вагнер провел аудит защиты в 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.