Описание: |
Недавно Девид Вагнер провел аудит защиты в 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:main() (см. ниже)
Воздействие: Скорее всего никакое, но 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]);
Воздействие: Скорее всего никакое, но 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.
Воздействие: Скорее всего никакое, но ab нельзя будет вызвать из CGI сценарием и т.п.
Уязвимость устранена в 1.3.27. http://www.apacheweek.com/features/security-13
|