Научно-технический центр информационных технологий «Роса» представил обновление для операционных систем «Роса Хром 12», «Роса Хром 12 сертифицированная ФСТЭК России» и «Роса Хром 13», которое устраняет уязвимость PinTheft в ядре Linux. Эта брешь относится к категории локального повышения привилегий и при определенных сценариях дает возможность пользователю без административных прав получить доступ уровня root. Как сообщили CNews в НТЦ ИТ «Роса», уязвимость была оперативно исправлена.
PinTheft представляет собой очередную уязвимость из семейства Copy Fail, связанную с возможностью перезаписи данных в страничном кэше Linux. На практике это означает, что злоумышленник, уже способный выполнять код или команды в системе от имени обычного пользователя, может попытаться изменить поведение SUID-root-бинарника в памяти и получить максимальные привилегии в системе. На момент публикации информации CVE-идентификатор для PinTheft еще не был назначен.
«Уязвимости локального повышения привилегий требуют особого внимания, даже если они не предоставляют злоумышленнику первичный удаленный доступ к системе. Их опасность заключается в том, что ограниченный доступ может быть преобразован в полный контроль над операционной системой. «Роса» выпустила обновление, закрывающее PinTheft, и мы рекомендуем администраторам установить его стандартными средствами операционной системы. После обновления ядра необходимо перезагрузить систему, чтобы она начала работать на исправленной версии», — отметил Алексей Киселев, руководитель отдела разработки ОС «Роса».
С технической точки зрения PinTheft связана с ошибкой в реализации сетевого протокола RDS в ядре Linux. RDS применяется для обмена сообщениями между узлами кластера и предназначен для передачи данных с минимальными задержками. Проблема возникает в цепочке RDS zerocopy и io_uring, где ошибка с повторным освобождением ресурсов может быть использована для перезаписи page cache, а затем — для запуска SUID-root-файла с измененным поведением и получения root-доступа.
При этом PinTheft не является удаленной уязвимостью в классическом понимании. Ее нельзя эксплуатировать просто «из интернета» без предварительного доступа к системе. Для атаки нарушителю необходимо иметь возможность выполнять код или команды на устройстве. Кроме того, для работы опубликованного прототипа эксплойта требуются определенные условия, включая поддержку RDS, RDS TCP и io_uring в ядре, а также наличие доступного SUID-root-бинарника.
Опасность PinTheft заключается в том, что уязвимости такого класса позволяют развивать атаку уже после получения ограниченного доступа. В корпоративной инфраструктуре это особенно актуально для рабочих станций разработчиков, серверов, CI/CD-сред, систем виртуализации и других окружений, где может запускаться пользовательский или сторонний код. Даже если уязвимость не является способом первичного проникновения, она может стать инструментом для закрепления в системе, обхода ограничений и получения полного контроля над ОС.
Выпуск обновления, устраняющего уязвимость PinTheft, осуществлён через штатную систему поддержки «Росы». Формирование исправленных пакетов происходит в ABF — среде сборки и обслуживания пакетов «Росы». После завершения всех необходимых этапов обновления размещаются в репозиториях и становятся доступными пользователям через обычный механизм обновления операционной системы.
Пользователям и администраторам советуют проверить наличие свежих версий ядра и установить их при первой же возможности. После применения исправленного ядра требуется выполнить перезагрузку системы. До перезагрузки ОС продолжает функционировать на предыдущей версии ядра, даже если новые пакеты уже были установлены.
«Роса» продолжает следить за новыми уязвимостями в компонентах операционных систем и предоставлять исправления в рамках стандартного процесса безопасного сопровождения своих продуктов.