
POC для CVE-2021-41091
Этот эксплойт предлагает углублённый взгляд на уязвимость CVE-2021-41091 и содержит пошаговое руководство по использованию скрипта эксплойта для повышения привилегий на хосте.
CVE-2021-41091 — это уязвимость в Moby (Docker Engine), которая из-за неправильно ограниченных разрешений позволяет непривилегированным пользователям Linux перемещаться по каталогу данных (обычно расположенному по пути /var/lib/docker) и выполнять находящиеся в нём программы. Эта уязвимость присутствует, когда контейнеры содержат исполняемые программы с расширенными разрешениями, такими как setuid. Непривилегированные пользователи Linux могут затем обнаруживать и выполнять эти программы, а также изменять файлы, если UID пользователя на хосте совпадает с владельцем файла или группой внутри контейнера.
Оверлейная файловая система является критически важным компонентом для эксплуатации этой уязвимости. Оверлейная файловая система Docker позволяет размещать файловую систему контейнера поверх файловой системы хоста, что даёт хостовой системе доступ к файлам внутри контейнера и возможность управлять ими. В случае CVE-2021-41091 излишне разрешающие права на каталоги в /var/lib/docker/overlay2 позволяют непривилегированным пользователям получать доступ к программам внутри контейнеров и выполнять их, что приводит к потенциальной атаке с повышением привилегий. Шаги эксплуатации
Подключитесь к контейнеру Docker на вашей машине и получите root-доступ.
Внутри контейнера установите setuid-бит на /bin/bash следующей командой: chmod u+s /bin/bash
В хостовой системе запустите предоставленный скрипт эксплойта (poc.sh), клонировав репозиторий и выполнив скрипт следующим образом:
git clone https://github.com/UncleJ4ck/CVE-2021-41091
cd CVE-2021-41091
chmod +x ./poc.sh
./poc.sh
Протестировано на docker engine версии 20.10.5+dfsg1
Крайне важно обновить Docker до версии 20.10.9 или выше, чтобы устранить эту уязвимость.