Исследователи выявили ряд уязвимостей в ядре Linux, позволяющих обходить защиту файлов через манипуляции с общей оперативной памятью. Ошибки, получившие названия Copy Fail, Dirty Frag и pedit COW, позволяют изменять содержимое файлов, открытых только для чтения, путем записи данных непосредственно в их страницы в файловом кеше.

Причиной уязвимостей стала некорректная обработка общих страниц памяти подсистемами ядра, включая криптографические модули и сетевые интерфейсы. Использование механизмов zero-copy приводит к тому, что ядро передает подсистемам ссылки на общие страницы, которые затем модифицируются «на месте» без предварительного создания копии, что нарушает целостность данных.

Эксплуатация уязвимостей позволяет повысить привилегии в системе. Например, злоумышленники могут изменить инструкции setuid-программ в page cache, что приводит к выполнению измененного кода при запуске программы. При этом файл на диске остается неизменным, а атака использует изолированные пространства имен для получения необходимых полномочий.

Единственным способом устранения данных уязвимостей является установка исправленной версии ядра Linux. Изменение прав доступа к файлам не решает проблему, так как ошибка кроется в логике работы самого ядра. Проверять наличие исправлений следует по бюллетеням безопасности конкретного дистрибутива, а не только по номеру версии ядра.

В качестве дополнительных мер рекомендуется ограничивать использование уязвимых подсистем, таких как AF_ALG, XFRM/ESP и функции редактирования пакетов через act_pedit, если они не требуются для работы сервисов. Для эффективного управления обновлениями на большом количестве серверов необходимо поддерживать актуальный реестр ИТ-инфраструктуры, что позволяет своевременно выявлять системы, требующие патчинга.