Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2026-31431 — Набор инструментов для исследования и обнаружения LPE-уязвимости CVE-2026-31431 в ядре Linux, включающий анализ эксплойтов, правила YARA, обнаружение через auditd/Falco, руководство по патчингу и лабораторную среду. | Kitploit
Инструменты/GitHubGitHub/vasyapokemon/cve-2026-31431
Повышение привилегийАнализ уязвимостейЭксплуатацияАнализ вредоносных программЦифровая криминалистикаОбнаружение ВторженийСтатьи и ИсследованияОбучение и ОбразованиеРеагирование на Инциденты

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Подобранные Ресурсы
Лаборатории и Практика
GitHubvasyapokemon/cve-2026-31431

cve-2026-31431

Набор инструментов для исследования и обнаружения LPE-уязвимости CVE-2026-31431 в ядре Linux, включающий анализ эксплойтов, правила YARA, обнаружение через auditd/Falco, руководство по патчингу и лабораторную среду.

Репозиторий
245 месяцев назадЕщё не проверено

CVE-2026-31431 — «Copy Fail»: локальное повышение привилегий в Linux Kernel algif_aead

CISA KEV | CVSS 7.8 HIGH | Затрагивает ядра Linux 4.14 — начало 2026 года (~9 лет)


Содержание

  1. Краткое резюме
  2. Оценка риска
  3. Технический анализ
  4. Методология атаки — Red Team
  5. Обнаружение и реагирование на инциденты — Blue Team
  6. Патчи и устранение уязвимости
  7. Лабораторная среда
  8. Ссылки

1. Краткое резюме

CVE-2026-31431, получивший прозвище «Copy Fail», — это уязвимость локального повышения привилегий (LPE) высокой степени серьёзности в криптографической подсистеме ядра Linux. Непривилегированный локальный пользователь может повысить привилегии до root за секунды на любой системе без установленного патча.

АтрибутЗначение
CVECVE-2026-31431
ПрозвищеCopy Fail
CVSS v3.17.8 HIGH
Вектор атакиЛокальный
Требуемые привилегииНизкие
Взаимодействие с пользователемОтсутствует
Компонентcrypto/algif_aead.c — шаблон authencesn
Введено2017 (коммит 72548b093ee3)
Раскрыто2026
Лет без исправления~9 лет
CISA KEVДа
Публичный PoCДа (автономный Python-скрипт на 732 байта)

Влияние на бизнес

  • Доступ root на любом сервере, ВМ, облачном инстансе или хосте контейнеров без установленного патча
  • Побег из контейнера из подов Kubernetes — страничный кэш является общим с ядром хоста
  • Нулевой след на диске — эксплуатация не оставляет изменений файлов, грязных страниц или следов аудита для стандартных средств проверки целостности файлов (Tripwire, AIDE)
  • Затрагивает Red Hat, Ubuntu, Debian, SUSE, Amazon Linux и практически все основные дистрибутивы, работающие на ядрах начиная с 2017 года

Рекомендуемые немедленные действия

  1. Временное смягчение (применить сейчас, перезагрузка не требуется, если модуль не загружен): ```bash echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf sudo rmmod algif_aead 2>/dev/null || true
  2. Постоянное исправление: Обновите пакеты ядра через менеджер пакетов вашего дистрибутива и перезагрузите систему.
  3. Проверка: Запустите detection/check_vulnerable.sh до и после устранения уязвимости.

2. Оценка риска

Строка вектора CVSS 3.1```

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

| Metric | Value | Rationale |
|--------|-------|-----------|
| Attack Vector | **Local** | Requires shell access (SSH, container exec, physical) |
| Attack Complexity | **Low** | Reliable, fully automated — no race condition required |
| Privileges Required | **Low** | Any unprivileged user account |
| User Interaction | **None** | No victim interaction needed |
| Confidentiality | **High** | Full system compromise |
| Integrity | **High** | Full system compromise |
| Availability | **High** | Full system compromise |

### Threat Landscape

| Factor | Assessment |
|--------|-----------|
| PoC Availability | Public, weaponized, 732-byte standalone Python |
| Exploit Reliability | High — works across tested distros without modification |
| Detection Difficulty | High — no disk writes, no dirty pages |
| Attacker Skill Required | Low — script kiddie with public PoC |
| CISA KEV | Added 2026 — actively monitored |
| Microsoft Defender | Flagged as under active investigation |

### Affected Environments

| Environment | Risk |
|-------------|------|
| Bare-metal Linux servers | Critical |
| Linux VMs (cloud or on-prem) | Critical |
| Kubernetes nodes | Critical (also enables container escape) |
| Docker hosts | Critical |
| Shared hosting / multi-tenant | Critical |
| WSL2 / Linux on Windows | Assess per kernel version |

---

## 3. Technical Deep Dive

### 3.1 Background: AF_ALG and AEAD

The Linux kernel exposes cryptographic operations to userspace via **AF_ALG sockets** (`AF_ALG = 38`). This interface (`algif_aead`) allows unprivileged applications to invoke kernel crypto hardware accelerators without needing kernel-mode code.

**AEAD** (Authenticated Encryption with Associated Data) algorithms like AES-GCM and ChaCha20-Poly1305 are widely used for TLS, disk encryption, and VPN protocols. The vulnerable template is `authencesn` — an AEAD composition using `hmac(sha256)` + `cbc(aes)` with Extended Sequence Number (ESN) support, commonly used in IPsec.

### 3.2 Root Cause

In 2017, commit `72548b093ee3` introduced **in-place AEAD operation** to `algif_aead` as a performance optimization — allowing the crypto engine to read and write the same buffer. This was flawed:```
The bug chain:

1. Caller binds AF_ALG socket to:
      authencesn(hmac(sha256),cbc(aes))

2. Caller sends a decryption request via sendmsg() with specific flags

3. Caller uses splice() to feed PAGE CACHE PAGES from an open file
   descriptor directly into the socket's scatterlist

4. The authencesn template, during ESN header processing, uses the
   OUTPUT BUFFER as scratch space — writing 4 bytes past the
   expected output boundary

5. Because the scatterlist contains page cache pages (not private
   copies), this scratch write lands DIRECTLY IN THE PAGE CACHE

6. Page cache is shared kernel-wide — all processes reading the
   same file now see the modified bytes

Key insight: splice() is zero-copy — it hands page cache references
to the socket. The in-place "optimization" then writes INTO those
pages. No dirty bit is set because the write goes through the crypto
engine, not the normal write path.

3.3 Примитив записи

Уязвимость обеспечивает контролируемую запись 4 байт в page cache любого файла, который атакующий может открыть для чтения:

СвойствоЗначение
Размер записи4 байта
Контроль смещенияДа — контролируется атакующим через смещение splice
ЦельPage cache любого читаемого файла
Пометка грязной страницыНет
Изменение на дискеНет
Обновление временной меткиНет
Запись в журнале ядраНет (если не настроен auditd)

Запись повторяема — эксплойт зацикливает запись по 4 байта для пропатчивания более крупных последовательностей кода.

3.4 Цепочка эксплуатации```

[1] Open /usr/bin/su (or any setuid-root binary) for reading ↓ [2] Map a copy to find target instruction bytes (e.g., UID check, execve path, security gate) ↓ [3] Compute exact page cache offset of target bytes ↓ [4] Set up AF_ALG socket → authencesn(hmac(sha256),cbc(aes)) ↓ [5] splice() the target binary's page cache into the socket ↓ [6] Trigger decryption → authencesn scratch write patches the target bytes in page cache (4 bytes per iteration) ↓ [7] Repeat for each 4-byte patch needed ↓ [8] Execute /usr/bin/su → runs root-owned setuid binary but now with attacker-controlled code in page cache ↓ [9] Root shell

### 3.5 Почему стандартные защиты не срабатывают

| Защита | Обойдена? | Причина |
|---------|-----------|--------|
| Мониторинг целостности файлов (Tripwire/AIDE) | **Да** | Нет изменений на диске |
| Проверка хешей файлов в IDS | **Да** | Байты на диске не изменены |
| `inotify` отслеживание файлов | **Да** | Нет события записи в VFS |
| SELinux / AppArmor | **Частично** | Контролирует процесс, а не запись в page cache через криптодвижок |
| Read-only монтирования | **Да** | Page cache изменяется в памяти, а не через монтирование |
| auditd `watch` на бинарник | **Да** | Audit отслеживает записи VFS — здесь VFS обходится |

### 3.6 Затронутые версии ядра
Скачать инструмент