| Дата публикации: | 06.01.2004 |
| Всего просмотров: | 2550 |
| Опасность: | Средняя |
| Наличие исправления: | |
| Количество уязвимостей: | 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 |