Security Lab

Переполнение буфера в Linux ядре

Дата публикации:06.01.2004
Всего просмотров:2498
Опасность:
Средняя
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: Linux kernel 2.2, 2.4 и 2.6

Описание: Уязвимость обнаружена в Linux ядре. Локальный пользователь может получить root привилегии на уязвимой системе.

Переполнение буфера обнаружено в системном вызове mremap. В результате локальный пользователь может заставить код ядра создать страницу памяти нулевого размера, что приведет к повреждению памяти ядра.

Как сообщается, существует рабочий код, позволяющий непривилегированному пользователю получить привилегии ядра (UID 0) на уязвимой системе.

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

Решение:Установите обновленную версию ядра (2.4.24-rc1) или установите следующее исправление:

diff -Naur -X /home/marcelo/lib/dontdiff linux-2.4.23/mm/mremap.c 
linux-2.4.24-rc1/mm/mremap.c
--- linux-2.4.23/mm/mremap.c   2003-08-25 11:44:44.000000000 +0000
+++ linux-2.4.24-rc1/mm/mremap.c   2004-01-04 20:52:19.000000000 +0000
@@ -241,6 +241,13 @@
 
       if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
          goto out;
+      /*
+       * Allow new_len == 0 only if new_addr == addr
+       * to preserve truncation in place (that was working
+       * safe and some app may depend on it).
+       */
+      if (unlikely(!new_len && new_addr != addr))
+         goto out;
 
       /* Check if the location we're moving into overlaps the
        * old location at all, and fail if it does.
Ссылки: Linux kernel do_mremap local privilege escalation vulnerability