Уязвимость повышения привилегий в функции "do_exit" ядра Linux, вызванная некорректной обработкой значения "KERNEL_DS" в "get_fs"
Описание
Обнаружена уязвимость в функции do_exit в файле kernel/exit.c ядра Linux до версии 2.6.36.2. Проблема заключается в том, что значение KERNEL_DS в get_fs обрабатывается некорректно, что позволяет локальным пользователям обойти предполагаемые ограничения access_ok, перезаписывать произвольные участки памяти ядра и повышать привилегии.
Эксплуатация возможна через использование:
- ошибки
BUG; - разыменования нулевого указателя (
NULL pointer dereference); - страничного сбоя (
page fault).
Проблема может быть продемонстрирована через векторы, связанные с функционалом clear_child_tid и системным вызовом splice.
Заявление
Версии ядра Linux, поставляемые с Red Hat Enterprise Linux 4, 5, 6, а также Red Hat Enterprise MRG, имеют включённый по умолчанию параметр panic_on_oops, поэтому они не подвержены данной проблеме. Однако, как профилактическая мера (например, для администраторов, которые отключили panic_on_oops), эта проблема была исправлена в обновлениях ядра для Red Hat Enterprise Linux 4, 5, 6 и Red Hat Enterprise MRG. Поскольку исправление рассматривалось как профилактическая мера, данный CVE не указан в соответствующих бюллетенях безопасности, предоставивших исправление: RHSA-2011:0162, RHSA-2011:0263, RHSA-2011:0017, RHSA-2011:0498, RHSA-2011:0542, RHSA-2011:0330. Исправление документировано в каждом из этих бюллетеней как регулярное исправление ошибок, например, как BZ#659568 в RHSA-2011:0162.
Затронутые версии ПО
- Ядро Linux до версии 2.6.36.2
Тип уязвимости
- Обход ограничений
- Несанкционированная модификация памяти
- Повышение привилегий
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Enterprise Linux 4 | kernel | Affected | ||
| Red Hat Enterprise Linux 5 | kernel | Affected | ||
| Red Hat Enterprise Linux 6 | kernel | Affected | ||
| Red Hat Enterprise MRG 1 | kernel-rt | Affected |
Показывать по
Дополнительная информация
Статус:
EPSS
6.2 Medium
CVSS2
Связанные уязвимости
The do_exit function in kernel/exit.c in the Linux kernel before 2.6.36.2 does not properly handle a KERNEL_DS get_fs value, which allows local users to bypass intended access_ok restrictions, overwrite arbitrary kernel memory locations, and gain privileges by leveraging a (1) BUG, (2) NULL pointer dereference, or (3) page fault, as demonstrated by vectors involving the clear_child_tid feature and the splice system call.
The do_exit function in kernel/exit.c in the Linux kernel before 2.6.36.2 does not properly handle a KERNEL_DS get_fs value, which allows local users to bypass intended access_ok restrictions, overwrite arbitrary kernel memory locations, and gain privileges by leveraging a (1) BUG, (2) NULL pointer dereference, or (3) page fault, as demonstrated by vectors involving the clear_child_tid feature and the splice system call.
The do_exit function in kernel/exit.c in the Linux kernel before 2.6.3 ...
The do_exit function in kernel/exit.c in the Linux kernel before 2.6.36.2 does not properly handle a KERNEL_DS get_fs value, which allows local users to bypass intended access_ok restrictions, overwrite arbitrary kernel memory locations, and gain privileges by leveraging a (1) BUG, (2) NULL pointer dereference, or (3) page fault, as demonstrated by vectors involving the clear_child_tid feature and the splice system call.
EPSS
6.2 Medium
CVSS2