
Эксплойт для проверки концепции CVE-2026-31431 — уязвимости повреждения page-cache в ядре Linux, позволяющей локальному пользователю повысить привилегии через algif_aead. Включает exploit.py и рекомендации по смягчению последствий.
Профессиональное доказательство концепции для уязвимости CVE-2026-31431 — критической ошибки в обработке page-cache в algif_aead / authencesn ядра Linux.
Уязвимость CVE-2026-31431, известная в просторечии как «Copy Fail», связана с ошибкой записи в scratch-буфер page-cache, раскрытой 29 апреля 2026 года. Она позволяет непривилегированному локальному пользователю повредить представление page-cache для критически важных системных файлов, таких как /etc/passwd или /usr/bin/su, без изменения файла на диске, что обеспечивает локальное повышение привилегий (LPE). [1]
Компонент algif_aead выполняет операции AEAD (аутентифицированное шифрование с ассоциированными данными) на месте. Когда исходные данные передаются через splice() из обычного файла, целевой scatterlist ссылается на страницы page-cache файла. Алгоритм authencesn(hmac(sha256), cbc(aes)) выполняет 4-байтовую «scratch»-запись поля seqno_lo AAD в целевой буфер, напрямую повреждая копию в page-cache. [1]
| Дистрибутив | Статус |
|---|---|
| Ubuntu 24.04 LTS | Подтверждённая уязвимость |
Примечание: Любое ядро, содержащее коммит
72548b093ee3(датируемый 2017 годом) без вышестоящего отката, потенциально затронуто.
| Файл | Описание |
|---|---|
exploit.py | Компактная реализация примитива LPE, нацеленного на системные бинарные файлы. |
Для получения root-оболочки с помощью предоставленного скрипта эксплойта:
python3 exploit.py
Скрипт автоматизирует повреждение page-cache для /usr/bin/su или /etc/passwd с целью повышения привилегий. Пользователям рекомендуется тщательно изучить код перед выполнением, поскольку он взаимодействует с чувствительными системными компонентами.
Основной примитив использует следующую последовательность:
sendmsg с 8-байтовым AAD и конкретными элементами управления AEAD.splice() целевого файлового дескриптора в операционный сокет.recv(), который выполняет scratch-запись перед возвратом ошибки.До развёртывания пропатченного ядра модуль algif_aead следует отключить:
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null
ПРЕДУПРЕЖДЕНИЕ: Этот инструмент предназначен только для образовательных целей и авторизованной оценки безопасности. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых не имеете явного разрешения, является незаконным и неэтичным. Авторы не несут ответственности за неправомерное использование.
[1] Блог Xint: Copy Fail — раскрытие информации о дистрибутивах Linux
© 2026 BEN
| Amazon Linux 2023 | Подтверждённая уязвимость |
| RHEL 14.3 | Подтверждённая уязвимость |
| SUSE 16 | Подтверждённая уязвимость |