Security Lab

Переполнение буфера в CVS

Дата публикации:28.05.2002
Всего просмотров:1008
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: CVS – система для организации программных средств. CVS - свободно доступный, открытый исходный пакет программ для Unix, Linux, и Microsoft Windows.

Файл rcs.c содержит off-by-one(переполнение на 1 байт) ошибку, которая может использоваться локальным атакующим для переполнения стека и выполнения произвольного кода.

Уязвимость обнаружена в CVS 1.11

Уязвимый код:

in cvs-1.11/src/rcs.c:
info = findnode (vers->other_delta, "special");
if (info != NULL)
{
/* If the size of `devtype' changes, fix the sscanf call also */
char devtype[16]; <-- SIXTEEN BYTES
if (sscanf (info->data, "%16s %lu", <-- WOOPS SHOULD BE 15
devtype, &devnum_long) < 2)
error (1, 0, "%s:%s has bad `special' newphrase %s",
workfile, vers->version, info->data);
devnum = devnum_long;
if (STREQ (devtype, "character"))
special_file = S_IFCHR;
else if (STREQ (devtype, "block"))
special_file = S_IFBLK;
else
error (0, 0, "%s is a special file of unsupported type `%s'",
workfile, info->data);
}
}

Ссылки: [DER ADV#8] - Local off by one in CVSD