Security Lab

Множественные уязвимости в ядре Linux

Дата публикации:04.11.2009
Дата изменения:22.02.2010
Всего просмотров:3241
Опасность:
Низкая
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: CVE-2009-3547
CVE-2009-3888
Вектор эксплуатации: Локальная
Воздействие: Отказ в обслуживании
Раскрытие важных данных
Повышение привилегий
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Linux Kernel 2.6.x
Уязвимые версии: Linux kernel версии до 2.6.31.6

Описание:
Обнаруженные уязвимости позволяют локальному пользователю получить доступ к важным данным, вызвать отказ в обслуживании и повысить свои привилегии на системе.

1. Уязвимость существует из-за ошибки блокирования в функциях pipe_rdwr_open(), pipe_write_open(), и pipe_read_open() в файле fs/pipe.c. Локальный пользователь может с помощью определенных операций над каналом вызвать разыменование нулевого указателя и повысить свои привилегии на системе.

2. Уязвимость существует из-за ошибки в функции do_map_pgoff() в файле mm/nommu.c. Локальный пользователь может с помощью специально сформированного ELF файла вызвать разыменование нулевого указателя и выполнить произвольный код на системе с повышенными привилегиями. Для успешной эксплуатации уязвимости опция "CONFIG_MMU" должна быть отключена во время компиляции ядра.

3. Уязвимость существует из-за ошибки при обработке системных вызовов в arch/x86/ia32/ia32entry.S. Локальный пользователь может через регистр EBP получить доступ к некоторым данным ядра.

URL производителя: www.kernel.org

Решение: Установите последнюю версию 2.6.31.6 с сайта производителя.

Журнал изменений:

09.11.2009
Добавлен PoC код к уязвимости #1, добавлено уязвимость #2, изменено название уведомления.
17.11.2009
Добавлено уязвимость #3, изменена секция «Решение».

Ссылки: Linux Kernel 2.6.x pipe.c Local Null Pointer Dereference PoC
Linux Kernel pipe.c Privilege Escalation PoC

http://bugzilla.kernel.org/show_bug.cgi?id=14416
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ad3960243e55320d74195fb85c975e0a8cc4466c
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=89a8640279f8bb78aaf778d1fc5c4a6778f18064
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=81766741fe1eee3884219e8daaf03f466f2ed52f