Эксперт Positive Technologies Александр Попов выявил и исправил пять похожих уязвимостей в виртуальных сокетах ядра Linux. Эти уязвимости могут быть использованы для локального повышения привилегий, и Александр подтвердил возможность атаки на Fedora 33 Server. Уязвимости получили общий идентификатор CVE-2021-26708 и оценку 7,0 по шкале CVSS v3, что соответствует высокому уровню опасности.
К проблеме безопасности ядра привели ошибки типа «состояние гонки» , которые были неявно внесены при добавлении поддержки нескольких транспортов для виртуальных сокетов. Эта функциональность появилась в ядре Linux версии 5.5 в ноябре 2019 года. Уязвимые драйверы (CONFIG_VSOCKETS и CONFIG_VIRTIO_VSOCKETS) поставляются как ядерные модули основными дистрибутивами GNU/Linux. Данные модули автоматически загружаются системой при создании сокета AF_VSOCK, и это действие доступно непривилегированному пользователю.
«Мне удалось разработать прототип эксплоита, который выполняет локальное повышение привилегий на Fedora 33 Server и обходит защитные механизмы SMEP и SMAP платформы x86_64. Это исследование в дальнейшем позволит усовершенствовать средства защиты ядра Linux», — уточнил Александр Попов.
Александр подготовил исправления и выполнил ответственное разглашение уязвимостей. Патч уже принят в ванильное ядро Linux v5.11-rc7, а также применен в стабильных ветках, которые были подвержены CVE-2021-26708.