Проблема находится в подсистеме RDS (Reliable Datagram Sockets) — сетевом протоколе Linux, который используется в высокопроизводительных средах, например в кластерах InfiniBand и некоторых распределённых системах.
Конкретно ошибка возникает в zerocopy send path — пути передачи данных без копирования буфера. Этот механизм предназначен для ускорения сетевых операций, позволяя ядру отправлять данные прямо из пользовательской памяти.
В функции:
rds_message_zcopy_from_user()
ядро «прикрепляет» (pin) страницы пользовательской памяти по одной для отправки. Если на более позднем этапе возникает page fault, обработчик ошибок пытается освободить ранее закреплённые страницы.
Но из‑за ошибки часть страниц освобождается повторно, что приводит к double‑free или повреждению счётчика ссылок. В результате ядро может продолжать работать с уже освобождённой памятью.
Это и создаёт основу для дальнейшей эксплуатации.
Исследователи показали, что эту ошибку можно объединить с современными механизмами ядра Linux, чтобы получить контроль над содержимым памяти.
Атакующий, имеющий локальный доступ, инициирует выполнение уязвимого RDS zerocopy send path. Когда происходит ошибка страницы, код очистки некорректно освобождает ранее закреплённые страницы памяти, создавая неконсистентное состояние.
Далее используется io_uring fixed buffers — механизм регистрации буферов памяти для высокопроизводительных асинхронных операций ввода‑вывода.
С помощью этих буферов атакующий может повторно занять освобождённые физические страницы памяти, получив над ними контролируемое влияние.
Поскольку затронутые страницы могут относиться к page cache — кэшу ядра для файловых данных — атакующий может превратить повреждение памяти в механизм перезаписи page cache.
Это означает, что:
Финальный этап атаки направлен на SUID‑root бинарный файл — программу, которая запускается с привилегиями root независимо от пользователя.
Если атакующий изменяет её содержимое в page cache, то при запуске система фактически выполняет модифицированный код, но всё ещё с правами root.
Фактический риск зависит не только от версии ядра, но и от конфигурации системы.
Некоторые отчёты указывают, что Arch Linux оказался одним из основных объектов тестирования:
Теоретически уязвимость может затронуть любую Linux‑дистрибуцию, если:
Сообщается, что стандартные установки Ubuntu, Debian, RHEL и AlmaLinux часто менее подвержены риску, поскольку модуль RDS обычно не используется по умолчанию. Тем не менее администраторам рекомендуется проверять конкретную конфигурацию системы.
Компания CloudLinux заявила, что протестировала публичный PoC на своих платформах и не обнаружила уязвимости в своих сборках.
Для реализации атаки обычно требуется несколько факторов одновременно:
Если хотя бы одно из этих условий отсутствует, эксплуатация становится значительно сложнее или невозможной.
Администраторы могут существенно снизить риск несколькими шагами.
Разработчики ядра уже выпустили патч, исправляющий уязвимый код RDS. Самая важная мера — установить обновлённую версию ядра из репозитория вашего дистрибутива.
После обновления необходимо перезагрузить систему, иначе будет продолжать работать старое ядро.
Если инфраструктура не использует RDS, стоит:
rds в blacklistЭто уменьшит поверхность атаки.
Так как эксплойт использует io_uring fixed buffers, ограничение или отключение доступа к io_uring для непривилегированных пользователей может снизить риск.
Поскольку конечная цель атаки — SUID‑root программы, рекомендуется:
PinTheft — это локальная уязвимость, поэтому системы с множеством пользователей особенно уязвимы. К таким системам относятся:
Именно их стоит обновить в первую очередь.
PinTheft демонстрирует характерную тенденцию современных атак на ядро Linux: злоумышленники объединяют несколько сложных подсистем — в данном случае RDS и io_uring — чтобы превратить относительно небольшую ошибку управления памятью в полноценный механизм повышения привилегий.
Даже редко используемые модули ядра могут стать серьёзной точкой атаки. Поэтому регулярные обновления ядра и минимизация загруженных модулей остаются одной из самых эффективных мер защиты.
Comments
0 comments