Security Lab

Уязвимость в усечении имени пути в d_path()

Дата публикации:28.03.2002
Всего просмотров:1130
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: В случае чрезмерно длинного имени пути, внутренняя функция ядра d_path возвратит усеченное имя пути вместо значения ошибки. Поскольку эта функция используется системным вызовом getcwd(2) и функцией do_proc_readlink (), ложная информация может быть возвращена к пользовательским процессам.

Функция ядра d_path возвращает строку абсолютного имени пути 'dentry', пропущенную как параметр к функции.

Путь - это цепочка последовательных компонентов пути, начинающаяся с конечного компонента пути. Связанное имя пути хранится в буфере с устанавливаемой длиной в PAGE_SIZE байтов.

Если 'dentry' указывает на путь, который превышает длину PAGE_SIZE - 1 символ, компоненты пути будут возвращены функцией усеченными без возвращения ошибки.

Поскольку системный вызов getcwd(2) использует функцию d_path (), уязвимость позволяет возвращать недопустимый путь к пользовательскому процессу. Однако, если возвращенный путь более длинен, чем буфер в процессе пользователя, будет возвращено правильное значение ошибки.

В результате привилегированный процесс может быть обманут, считая, что он внутри произвольного каталога. Возможны другие сценарии, например, если readlink() используется на файлах на файловой системе proc (подобно "/proc/self/exe").

Ссылки: эксплоит