| Дата публикации: | 01.08.2003 |
| Всего просмотров: | 1243 |
| Опасность: | |
| Наличие исправления: | |
| Количество уязвимостей: | 1 |
| CVE ID: | Нет данных |
| Вектор эксплуатации: | |
| Воздействие: | |
| CWE ID: | Нет данных |
| Наличие эксплоита: | Нет данных |
| Уязвимые продукты: | |
| Описание: | Переполнение буфера обнаружено в Wu-ftpd FTP сервере. Удаленный атакующий может выполнить произвольный код на системе с root привилегиями.
off-by-one переполнение обнаружено в функции fb_realpath().Переполнение происходит, когда длина созданного пути равна MAXPATHLEN+1символам, в то время как размер буфера равен MAXPATHLEN. Переполненный буфер находится в стеке. Ошибка связанна с неправильным использованием переменной rootd в вычислении длины составной строки:
/*
* Join the two strings together, ensuring that the right thing
* happens if the last component is empty, or the dirname is root.
*/
if (resolved[0] == '/' && resolved[1] == '\0')
rootd = 1;
else
rootd = 0;
if (*wbuf) {
if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) {
errno = ENAMETOOLONG;
goto err1;
}
if (rootd == 0)
(void) strcat(resolved, "/");
(void) strcat(resolved, wbuf);
}
Так как путь создается из текущего рабочего каталога и имени файла, определенного как параметр к различным FTP командам, но атакующий должен создать глубокую структуру каталога.Уязвимы следующие FTP команды: STOR RETR APPE DELE MKD RMD STOU RNTOЭта уязвимость может быть неэксплуатируемая, если размер буфера более MAXPATHLEN символов. Это может произойти, если wu-ftpd компилирован с некоторыми версиями LINUX ядра, в которых PATH_MAX (и MAXPATHLEN соответственно) равен 4095 символам. В этом случае, буфер дополняется дополнительным байтом из-за выравнивания переменной в результате оптимизации кода. Linux 2.2.x and некоторые ранние версии Linux 2.4.х определяют PATH_MAX к 4095 символам. Т.е. уязвимы только системы с ядром 2.0.x и последними версиями 2.4.x. Для успешной эксплуатиции удаленный атакующий должен иметь привилегии на записть на FTP сервере. Уязвимость проверена на Linux 2.4.19 с wu-ftpd 2.5.0 <= 2.6.2 |
| Ссылки: | wu-ftpd fb_realpath() off-by-one bug |