Sploitus

Exploit for CVE-2017-5123 CVE-2016-5195 CVE-2017-5123

kitploit · 2026-08-25

Exploit Code

MARKDOWN68 lines
## 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-пользователя хоста.