Дата публикации: | 01.08.2003 |
Всего просмотров: | 1167 |
Опасность: | |
Наличие исправления: | |
Количество уязвимостей: | 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 |