В ядрі Linux виявлена небезпечна 0-day вразливість Dirty COW (CVE-2016-5195)



У ядрі Linux виявлена небезпечна уразливість, яка пов'язана з обробкою підсистемою пам'яті ядра механізму copy-on-write (COW). Експлуатуючи баг можна спровокувати так званий стан гонки (race condition). При експлуатації уразливості неавторизований локальний користувач зможе отримати доступ до memory mappings з правом запису, хоча доступ повинен бути обмежувати тільки читання (read-only). Уразливість відноситься до privilege escalation.

Уразливість була виявлена в самому ядрі Linux і, що важливо, є у складі будь-яких дистрибутивів майже десять років => 2.6.22.
«Як помітив Лінус Торвальдс у своєму коммите, цей древній баг живе в ядрі вже багато років. Всім користувачам Linux варто поставитися до проблеми серйозно і встановити патч як можна швидше»
Уразливість присвоєно CVE-2016-5195, їй схильні більшість сучасних дистрибутивів Linux, більш того, дослідник (Phil Oester), виявив уразливість, стверджує що ця вразливість експлуатується зловмисниками.

У четвер, 20 жовтня, один з ключових розробників ядра Linux Грег Кроа-Хартман (Greg Kroah-Hartman) повідомив про вихід оновлень для версій Linux 4.8, 4.7 та 4.4 LTS, виправляють вразливість Dirty COW.

Уразливість викликана станом гонки при обробці copy-on-write (COW) операцій у підсистемі управління пам'яттю і дозволяє порушити роботу мапінгу пам'яті в режимі тільки для читання. З практичного боку, проблема дозволяє здійснити запис до області пам'яті, відображені в режимі тільки для читання. Наприклад, в прототипі експлоїта показано як використовувати дану проблему для зміни вмісту файлу, що належить користувачу root і доступного тільки на читання. У тому числі, за допомогою запропонованого методу атаки непривилегированный зловмисник може змінити виконувані системні файли, обійшовши штатні механізми керування доступом.

$ sudo -s
# echo this is not a test > foo
# chmod 0404 foo
$ ls -lah foo
-r-----r-- 1 root root 19 Oct 20 15:23 foo
$ cat foo
this is not a test

$ gcc -lpthread dirtyc0w.c -o dirtyc0w
$ ./dirtyc0w foo m00000000000000000
mmap 56123000
madvise 0
procselfmem 1800000000

$ cat foo
m00000000000000000

Для перевірки вразливості доступний Proof-of-Concept експлоїт: https://github.com/dirtycow/dirtycow.github.io/blob/master/dirtyc0w.c.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.