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