Взято с SECURITY.NNOV (автор - Ilya Teterin )
"Midnight Commander использует неинициализированный буфер для обработки симлинков при работе с VFS (tar,cpio). Смотрите файл vfs/direntry.c, работа с buf[] в функции vfs_s_resolve_symlink()
На linux-i386 я могу вызвать переполнение стека, использую специальным образом сформированный архив. Откройте файл в MC VFS для проверки (он должен "помереть").
Уязвимые версии - как минимум linux-i386 с mc-4.5.52 до mc-4.6.0."
SAN>
Я заинтересовался и специально залез в упоминаемую функцию и в самом ее начале нашел такую строку (346):
char buf[MC_MAXPATHLEN], *linkname;
Т.е. buf объявляется и инициализируется одновременно. У меня MC версии 4.6.0-pre2, вроде под описание подходит, однако рекомендуемый "убивающий" архив сработал. Может на самом деле имеется в виду указатель *linkname, который при определенных условиях дальше в теле функции (строка 392) приравнивается к buf?
San АНДРЕЕВ | 23.09.2003 | 08:18 |
Комментарии посетителей:
Ваш комментарий:
|