В середине октября 2016 года Linux-сообщество узнало об уязвимости Dirty COW, которая существовала в ядре Linux начиная с версии 2.6.22, то есть с 2007 года. Хотя проблема сама по себе оказалась глобальной (за почти 10 лет баг успел пробраться практически во все дистрибутивы и реализации), спустя несколько дней обнаружилось, что уязвимость, к тому же, опасна еще и для Android, и для нее реализовано уже несколько эксплоитов.

Теперь исследователь из компании Paranoid Software Габриэль Лоуренс (Gabriel Lawrence) предупреждает о том, что Dirty COW имеет еще одну интересную грань. Эксперт обнаружил, что виртуализация – совсем не преграда для бага.

«Для меня гораздо интереснее самой эскалации привилегий оказался тот факт, что от этого бага в ядре Linux нас не спасут даже контейнеры вроде Docker», — пишет Лоуренс.

Исследователь поясняет, что для эксплуатации бага нужен общий ресурс (shared resource) для всех процессов, и на эту роль отлично подходит vDSO (virtual dynamic shared object), «небольшая shared библиотека, которую ядро автоматически мапит в адресное пространство всех user-space  приложений». Воспользовавшись proof-of-concept эксплоитом авторства Scumjr и функцией clock_gettime() в адресном пространстве vDSO, исследователь сумел не только получить root-права, но и осуществить побег из контейнера.

К своему отчету Лоуренс приложил видео, демонстрирующее пример атаки в тестовом окружении Amazon Web Services. «[В итоге] я root-пользователь и мне видны файлы, которые хостятся за пределами контейнера», — комментирует ролик исследователь.

Подробная информация об изысканиях Лоуренса опубликована в блоге Paranoid Software, а proof-of-concept код доступен на GitHub.

Оставить мнение

Check Also

Necurs, крупнейший спамерский ботнет в мире, обзавелся функциональностью для DDoS-атак

Ботнет Necurs, насчитывающий порядка 5 млн зараженных устройств, теперь имеет модуль для о…