## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-TEAWATER-CVE-2017-5123
# README
> **Примечание** : Код в этом репозитории предназначен для демонстрации изоляции технологий защищённой песочницы для подов, таких как kata containers, и не направлен на атаку на какие-либо платформы.
## Как воспроизвести
* Получить ядро Linux 4.13.0
* Применить патч 0001-CVE-2017-5123-help-to-make-attack-safely.patch
* Собрать ядро Linux с конфигом Kconfig
* Загрузить ядро и получить адреса dac_mmap_min_addr, have_canfork_callback, prepare_kernel_cred, commit_creds, set_fs_root, copy_fs_struct, current_task с помощью следующих команд. Обновить адреса в CVE-2017-5123.c
root@kitploit:~
echo 0 > /proc/sys/kernel/kptr_restrict
cat /proc/kallsyms
* gdb vmlinux
* Получить смещение TASK_FS_OFFSET и обновить адрес в CVE-2017-5123.c
root@kitploit:~
(gdb) p &(((struct task_struct *)0)->fs)
* Получить смещение TASK_PARENT_OFFSET и обновить адрес в CVE-2017-5123.c
root@kitploit:~
(gdb) p &(((struct task_struct *)0)->parent)
* Получить смещение FS_ROOT_OFFSET и обновить адрес в CVE-2017-5123.c
root@kitploit:~
(gdb) p &(((struct fs_struct *)0)->root)
* Собрать CVE-2017-5123.c с флагом --static и поместить бинарный файл в docker-образ.
* Загрузить ядро с параметром командной строки ядра "nosmep".
* Теперь используйте docker-образ по полной.
## Об этом CVE
Реализация waitid в основных ядрах не ограничивала целевой адрес назначения для копирования результатов информации. Это может позволить локальным пользователям выполнять запись в защищённую память ядра, что может привести к повышению привилегий.
Ошибка была внесена 2017-05-21 и исправлена 2017-10-09.
Этот CVE уже исправлен в более поздних релизах ветки 4.13 и более новых основных ядрах. Тем не менее, могут существовать похожие CVE, допускающие повышение привилегий. Сам CVE на самом деле весьма похож на знаменитый dirty cow, CVE-2016-5195.
## Дополнительная информация
CVE-2017-5123.c использует эту уязвимость для изменения значения /proc/sys/vm/mmap_min_addr. Затем ядро Linux вызывает шелл-код для получения прав доступа к файлам root-пользователя хоста.