Copy Fail — уязвимость Linux, которая ставит под угрозу серверы, облачные сервисы и контейнеры.

  • Уязвимость Copy Fail (CVE-2026-31431) позволяет непривилегированному локальному пользователю получить права root в большинстве современных дистрибутивов Linux.
  • Уязвимость кроется в криптографической подсистеме ядра (AF_ALG, algif_aead, authencesn) и приводит к повреждению кэша страниц без изменения файлов на диске.
  • Многопользовательские среды, публичные облака, Kubernetes, CI/CD и общие серверы в Европе особенно уязвимы до установки обновлений.
  • Меры по смягчению последствий включают обновление ядра, отключение algif_aead/AF_ALG там, где это возможно, и усиление мониторинга попыток эксплуатации уязвимости.

Уязвимость Copy Fail в Linux

Сообщество Администраторы свободного программного обеспечения и систем Linux В настоящее время Linux столкнулся с проблемой, которая выходит далеко за рамки простого ожидающего обновления. Уязвимость Copy Fail, зарегистрированная как CVE-2026-31431, обнаружила в ядре Linux уязвимость, которая оставалась незамеченной в течение многих лет и позволяет любому локальному пользователю без привилегий получить полный контроль над машиной.

Влияние этого явления выходит далеко за рамки испытательной лаборатории: серверы в европейских центрах обработки данных, кластеры KubernetesВ центре внимания оказались платформы CI/CD и облачные сервисы, запускающие сторонний код. Хотя уязвимость напрямую не открывает бэкдор из интернета, она превращает практически любое небольшое локальное вторжение в высоконадежное и трудноотслеживаемое повышение привилегий до уровня root.

Что такое уязвимость Copy Fail (CVE-2026-31431) и почему она вызывает такую ​​обеспокоенность?

Уязвимость безопасности Copy Fail в Linux

Copy Fail — это Уязвимость локального повышения привилегий (LPE) в ядре Linux. На практике это позволяет пользователю с обычной учетной записью, процессу внутри контейнера или заданию CI без административных привилегий в конечном итоге выполнять код от имени root на уязвимых системах.

Проблема отслеживается под номером CVE-2026-31431 и затрагивает следующие системы: криптографическая подсистема ядраВ частности, злоумышленник атакует интерфейс AF_ALG и модуль algif_aead в сочетании с криптографическим шаблоном аутентификации. Эта комбинация в конечном итоге позволяет злоумышленнику записать 4 байта контролируемых данных в кэш страниц системы.

Что поразительно, так это компактность эксплойта. Различные исследователи, включая Xint Code и Theori, опубликовали концептуальные доказательства его работоспособности. несколько сотен байт в Python которые стабильно работают в обычных условиях, без необходимости в экзотических условиях гонки или сложных конфигурациях.

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

Причина неудачи: оптимизация, проведенная в 2017 году, оказалась дорогостоящей.

Уязвимость ядра Linux и ошибка копирования

Техническая суть Copy Fail заключается в изменении, внесенном в ядро ​​Linux в 2017 году, когда оно стремилось ускорить работу криптографического модуля algif_aeadЭта оптимизация, разработанная для выполнения операций «на месте» и предотвращения ненужного копирования памяти, непреднамеренно открыла путь к повреждению кэша страниц.

Затронутый код использует шаблон. аутентификация (HMAC-SHA256 + AES-CBC)Вместо того чтобы использовать только выходное пространство для записи зашифрованного или расшифрованного результата, алгоритм использует часть этого буфера в качестве временной рабочей области. Проблема возникает, когда во время этих операций четыре байта записываются за пределы заданных границ.

В сочетании с системным вызовом сращивание ()Поскольку это напрямую связывает страницы кэша ядра с дескрипторами файлов пользовательского пространства, эта запись за пределы допустимого диапазона в конечном итоге влияет на страницу кэша, содержащую системный файл. Если злоумышленнику удастся сделать так, чтобы эта страница соответствовала исполняемому файлу с битом setuid, например, /usr/bin/su или sudo в LinuxЭто открывает возможность манипулировать кодом, который будет выполняться от имени root.

Официальный патч, устраняющий уязвимость, отменяет именно эту проблемную оптимизацию, снова разделяя области памяти источника и назначения. В стабильных ветках ядра это изменение связано с такими коммитами, как... a664bf3d603dкоторые уже интегрируются в версии, поддерживаемые в долгосрочной перспективе.

Пять ключевых деталей о том, как работает эксплойт.

Эксплуатация уязвимости копирования в системах Linux.

В аналитических отчетах, опубликованных Xint/Theori и другими компаниями, занимающимися вопросами безопасности, описывается относительно простой механизм атаки. В упрощенном виде процесс обычно включает следующие шаги, с использованием интерфейсы ядра, активные по умолчанию в большинстве распределений:

  • Злоумышленник открывает сокет AF_ALG и выбирает уязвимый режим AEAD в криптографической подсистеме ядра.
  • Через сращивание (), связывает страницы из кэша читаемого файла (например, /usr/bin/su) с целевым буфером, который ядро ​​будет использовать для криптографической операции.
  • Алгоритм аутентификации обрабатывает данные и, из-за логической ошибки, записывает их. Выход за пределы допустимого диапазона на 4 байта. запланированного выходного буфера.
  • Эти 4 байта попадают на страницу кэша, содержащую двоичный код с установленным флагом setuid, и ее содержимое контролируется злоумышленником посредством параметров операции и AAD.
  • Повторив цикл несколько раз, можно изменить ключевые инструкции Из исполняемого файла в памяти или путем внедрения небольших фрагментов шелл-кода. При выполнении программы получается оболочка с правами root.

Главное преимущество для злоумышленника заключается в том, что всё это происходит в кэш страниц ядраФайл на диске не изменен, поэтому обычные проверки, основанные на хешах, сигнатурах или инструментах проверки целостности файлов, показывают, что все выглядит корректно.

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

Какие системы Linux затронуты и каков уровень риска?

Все анализы сходятся во мнении, что масштаб проблемы широк. Уязвимость затрагивает ядра, включающие оптимизацию 2017 года и поддерживать AF_ALG и algif_aead. На практике это охватывает большинство версий ядра 4.14 и более поздних, пока в каждом дистрибутиве не будет интегрирован соответствующий патч.

Затронутые платформы указаны в явном виде. Ubuntu, Debian, Red Hat Enterprise Linux (RHEL), SUSE, Amazon Linux а также некоторые сборки WSL2, в которых включен AF_ALG. Несколько исследователей успешно протестировали эксплойт в типичных производственных средах, подтвердив его реальную работоспособность.

В случае Европы это оказывает прямое влияние на критическая инфраструктура и общественные услуги где Linux является стандартом де-факто: от государственных учреждений и университетов до банков, операторов связи и крупных хостинг-провайдеров, предлагающих общие серверы или многопользовательские VPS.

Классификация степени тяжести варьируется в пределах значений ​​† Высокий риск по шкале CVSS (около 7,8/10)Хотя эта уязвимость не может быть использована удалённо, её простота, стабильность и способность нарушать изоляцию между пользователями и контейнерами ставят её в один ряд с такими уязвимостями, как Dirty Pipe или Dirty COW.

Сами дистрибутивы публикуют уведомления о безопасности. Например, Ubuntu помечает уязвимость CVE как Высокий приоритет для нескольких веток LTS и подробно описывает, какие пакеты все еще находятся в статусе «ожидание исправления», в то время как такие поставщики, как Amazon Linux, указывают конкретные версии ядра 5.4, 5.10, 5.15, 6.12 или 6.18, ожидающие обновления.

Влияние на серверы, контейнеры и облачные среды

Худшее проявление ошибки копирования (Copy Fail) наблюдается именно здесь. сценарии с несколькими арендаторамиТо есть, речь идет о случаях, когда несколько пользователей или клиентов используют одну и ту же физическую машину или одно и то же ядро: общие серверы, кластеры Kubernetes, средства запуска CI/CD или облачные сервисы, выполняющие клиентский код.

Например, у европейского хостинг-провайдера клиент с простой учетной записью на общем сервере может использовать любую незначительную уязвимость в своем веб-приложении для выполнения локального кода, а затем с помощью CopyFail скомпрометировать весь хост. С этого момента данные и сервисы всех остальных клиентов на сервере окажутся уязвимыми.

Аналогичная ситуация наблюдается и в платформы непрерывной интеграции и непрерывного развертывания (CI/CD) которые компилируют и тестируют код из нескольких проектов на общих машинах. Казалось бы, безобидная задача внутри исполняемого файла может использовать эту уязвимость и получить права root, предоставив доступ к остальным задачам и учетным данным, хранящимся в среде.

В случае Kubernetes и другие оркестраторы контейнеровПроблема в том, что все поды на узле используют один и тот же кэш страниц ядра хоста. Пользователь внутри контейнера, который может запустить прототип, может выйти из своей изолированной среды, взять под контроль узел и оттуда перемещаться по кластеру.

Подобные сценарии очень распространены в европейских центрах обработки данных, региональных облачных провайдерах и крупных компаниях, внедривших Kubernetes для своих рабочих нагрузок. Для многих из них была активирована уязвимость CVE-2026-31431. Выходные, посвященные обновлениям, кофе и запланированным перезагрузкам. как можно скорее сократить разрыв.

Ошибка копирования в сравнении с предыдущими уязвимостями ядра Linux

Ошибка копирования сравнивается с другими известными ошибками ядра, такими как... Грязная корова или грязная трубакоторый также манипулировал кэшем страниц и операциями ввода-вывода, чтобы изменять файлы, которые, теоретически, могли быть только прочитаны.

Ключевое отличие заключается в том, какая подсистема подвергается атаке. В то время как предыдущие уязвимости использовали пути записи в каналах или механизмы копирования файлов, Copy Fail полагается на криптографический путь ядрас помощью операций AF_ALG и AEAD получить примитив записи размером 4 байта в кэш.

С точки зрения злоумышленника, это имеет несколько преимуществ: необходимый код значительно сокращается, Это не зависит от сложных рас. и использует API, которые обычно активны по умолчанию, поскольку многие легитимные приложения полагаются на них для шифрования и аутентификации.

В результате получается более тихий и портативный эксплойт, который работает достаточно стабильно на разных архитектурах и версиях ядра в пределах затронутого диапазона. Поэтому, хотя он и не позволяет неограниченную произвольную запись, как некоторые другие уязвимости, его сочетание надежности и скрытности делает его очень привлекательным инструментом в более широкой цепочке атак.

Для групп специалистов по безопасности это подтверждает уже развивавшуюся идею: Оптимизация производительности в ядре Они могут создавать серьезные уязвимости, если не проходят тщательную проверку безопасности, что является непростой задачей для такого большого и постоянно меняющегося кода, как Linux.

Роль искусственного интеллекта в обнаружении ошибок копирования.

Один из самых любопытных аспектов этого дела — то, как был обнаружен баг, существовавший почти десять лет. Такие команды, как Xint Code и Theori, объяснили, что это открытие стало возможным не только благодаря терпению людей, но и благодаря использованию... Инструменты анализа кода с поддержкой ИИ.

Эти решения выполняют масштабное сканирование кода ядра, выискивая подозрительные закономерности, потенциально опасные обращения к памяти и комбинации функций, соответствующие изученным моделям риска. В таких сложных подсистемах, как криптография, где оптимизации, шаблоны и макросы тесно переплетены, человеческий глаз может легко упустить из виду тонкие нюансы взаимодействия.

С другой стороны, ИИ помогает выделить фрагменты кода, требующие более тщательного изучения. В случае с Copy Fail такой подход позволил обнаружить логическую ошибку в аутентификации а также его связь с оптимизацией 2017 года и использованием функции splice(), что ускользнуло от внимания в предыдущих обзорах.

Для многих европейских организаций посыл двоякий: с одной стороны, даже самое тщательно проверенное программное обеспечение может годами скрывать критические уязвимости; с другой стороны, использование передовых инструментов анализа на основе искусственного интеллекта становится все более распространенным. практически незаменимое требование для усиления безопасности критически важной инфраструктуры.

Доступны меры по смягчению последствий и исправления ошибок.

Фундаментальное решение предполагает тот же старый подход, но с большей срочностью: обновить ядро ​​Linux до версии, включающей патч для CVE-2026-31431. Разработчики ядра исправили уязвимость в таких ветках, как 6.18.22, 6.19.12 и Ядро 7.0и ведется работа по переносу изменений в версии с долгосрочной поддержкой.

Наиболее распространённые европейские дистрибутивы (Ubuntu, Debian, SUSE, RHEL, Amazon Linux и их производные) выпускают собственные исправленные ядра. Во многих случаях изменения связаны с соответствующим коммитом. a664bf3d603d или эквивалентные функции, которые исправляют обработку буфера в algif_aead и отменяют проблемную оптимизацию на месте.

В тех случаях, когда немедленный перезапуск невозможен, рекомендуется ряд временных мер для уменьшения поверхности атаки. Одна из наиболее прямых мер — это отключить модуль algif_aead Использование правил modprobe предотвращает его загрузку при запуске системы и выгружает, если он уже активен.

В условиях повышенного риска некоторые эксперты предлагают пойти еще дальше и заблокировать интерфейс AF_ALG с помощью политик безопасности, таких как seccomp, AppArmor или SELinux. Эта мера является более агрессивной, поскольку может повлиять на легитимные приложения, использующие AF_ALG для криптографических задач, поэтому ее следует тщательно протестировать в каждой среде, прежде чем внедрять в производство.

Выявление и мониторинг попыток эксплуатации

Хотя приоритетом является установка исправлений, многие организации хотят знать, использовалась ли уязвимость Copy Fail в их системах, или, по крайней мере, внедрить механизмы раннего предупреждения. Несколько поставщиков решений в области безопасности опубликовали соответствующие отчеты. конкретные правила мониторинга и EDR для этого случая.

Распространенный подход заключается в мониторинге доступа на чтение. бинарные файлы с setuid (например, su, sudo, passwd, gpasswd, mount, umount, fusermount3 и т. д.), когда они поступают из интерпретаторов, таких как Python, или из необычных путей, а также в последовательностях, в которых функция splice() немедленно вызывается непривилегированными пользователями.

Также рекомендуется отслеживать создание сокеты AF_ALG (семейство 26 в десятичной системе) на основе обычных UID пользователей и сопоставлять эти события с выполнением привилегированных бинарных файлов, запущенных с использованием аналогичных команд sh -co, — шаблон, который хорошо согласуется с тем, что делает первоначальный прототип.

В средах SIEM эти правила могут быть преобразованы в стандарты auditd и корреляции, которые запускают оповещения при появлении подозрительных моделей поведения. Передовые поставщики EDR добавили сигнатуры с именами, такими как possible_copy_fail_cve_2026_31431 или аналогичными, для обнаружения эксплойтов, написанных на Python, Go или Rust.

Хотя этот мониторинг не заменяет обновления программного обеспечения, он помогает. выявление аномальной активности реагировать до того, как инцидент обострится, что особенно актуально для финансовых учреждений, государственных органов и поставщиков критически важных услуг в Европейском союзе.

Практические рекомендации для компаний и менеджеров.

Для организаций, в инфраструктуре которых широко используется Linux, сценарий Copy Fail требует сочетания незамедлительных мер и фундаментальных корректировок стратегии безопасности. В краткосрочной перспективе наиболее разумными шагами являются:

  • Провести инвентаризацию всех систем Linux. В рабочей среде проверьте версию ядра с помощью таких инструментов, как uname -r.
  • Зарегистрируйтесь бюллетени по безопасности для каждого дистрибутива (Ubuntu, Debian, RHEL, SUSE, Amazon Linux и т. д.), если используемая версия подвержена уязвимости CVE-2026-31431.
  • Подайте заявку как можно скорее. обновления ядра публикуется поставщиком услуг, отдавая приоритет серверам, доступным для множества пользователей или содержащим ненадежный код.
  • В системах, где немедленные обновления невозможны, отключить algif_aead Используйте modprobe и, если это возможно, ограничьте AF_ALG с помощью seccomp/AppArmor/SELinux.
  • Пересмотреть и ужесточить правила использования контейнеров и соответствующие политики. Среды Kubernetes ограничить доступ к интерфейсам ядра, которые не являются строго необходимыми.

В среднесрочной перспективе стоит пересмотреть количество исполняемых файлов с битом setuid, присутствующих в системах, и определить, действительно ли все они необходимы, чтобы снизить уязвимость многопользовательских серверов и улучшить интеграцию. автоматизированный анализ и инструменты искусственного интеллекта во внутренних процессах разработки и тестирования.

Появление уязвимости Copy Fail послужило напоминанием о том, что даже такой давно существующий и тщательно проверенный проект, как ядро ​​Linux, может годами скрывать серьезные уязвимости. Для европейских компаний, государственных учреждений и облачных провайдеров сочетание быстрого обновления программного обеспечения, хорошо разработанных мер по устранению уязвимостей и более совершенного мониторинга в настоящее время является лучшим способом держать уязвимость под контролем — уязвимость, которая всего несколькими сотнями байтов кода может превратить локального пользователя в абсолютного владельца системы.

Пользователь root в Linux
Теме статьи:
Права доступа, риски и лучшие практики для пользователя root в Linux.