nixp.ru v3.0

26 ноября 2024,
вторник,
13:31:49 MSK

21 марта 2003, 10:00

Подробности уязвимости в ptrace (ядра Linux — 2.2 и 2.4)

Ранее сообщалось об уязвимости в ptrace (ядра Linux — 2.2 и 2.4), которая позволяет получить локальный доступ суперпользователя (см. «Найдена прореха в ядре Linux»).

Господин Andrzej Szombierski из Кракова (Польша) посчитал своим долгом раскрыть подробности этой уязвимости. Для её использования необходимо наличие следующих условий: ядро собрано с поддержкой загружаемых модулей, доступен загрузчик модулей и на него стоит ссылка в /proc/sys/kernel/modprobe, не заблокирован вызов ptrace () на уровне ядра. В большинстве дистрибутивов Linux все эти условия существуют по умолчанию. Работает уязвимость следующим образом. Когда какой-то процесс запрашивает другой процесс, который может быть загружен только как модуль, ядро порождает процесс-потомок (child process) с привилегиями EUID и EGID равными 0 (т.е. root) и вызывает через системный вызов execve — «/sbin/modprobe» (загрузчик модулей, указанный в /proc/sys/kernel/modprobe). Проблема в этом механизме заключается в том, что до того, как изменится EUID, любой пользовательский процесс-потомок может быть присоединён к вызову ptrace(). Таким образом, пользователь-злоумышленник может выполнить любой присоединённый процесс с полномочиями суперпользователя. В качестве мер противодействия предлагается: патчить ядро при помощи заплатки, выпущенной Аланом Коксом; отключить поддержку модулей (что, надо заметить, может сказаться на ядрах, в которых нельзя работать без модулей); инсталлировать модуль, блокирующий вызов ptrace(); указать в /proc/sys/kernel/modprobe путь на неправильный загрузчик.

Постоянная ссылка к новости: http://www.nixp.ru/news/1470.html. fly4life по материалам uinc.ru.

fb twitter vk