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

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

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

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

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

Категории

Все категории
Loading categories
Dirty-Frag-Kubernetes-PoC — Доказательство концепции, демонстрирующее выход из контейнера в Amazon EKS путем эксплуатации уязвимости Dirty Frag (CVE-2026-43284) — повреждения page-cache ядра через общие слои образов и привилегированные DaemonSets. | Kitploit
Инструменты/GitHubGitHub/percivalll/dirty-frag-kubernetes-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияБезопасность облачных средRed TeamingПобег из Контейнера
GitHubpercivalll/dirty-frag-kubernetes-poc

Dirty-Frag-Kubernetes-PoC

Доказательство концепции, демонстрирующее выход из контейнера в Amazon EKS путем эксплуатации уязвимости Dirty Frag (CVE-2026-43284) — повреждения page-cache ядра через общие слои образов и привилегированные DaemonSets.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
16325 месяцев назадЕщё не проверено

Dirty Frag (CVE-2026-43284) — Kubernetes Container Escape PoC

Proof-of-concept, демонстрирующий, как обычный, непривилегированный Kubernetes Pod может достичь выполнения кода на уровне узла в Amazon EKS, эксплуатируя уязвимость Dirty Frag — повреждение page-cache ядра Linux — через общие слои образов контейнеров.

Основной примитив атаки: любой привилегированный DaemonSet, разделяющий слои образов с контролируемым атакующим контейнером, может быть использован для побега из контейнера. Данный PoC использует kube-proxy как один конкретный пример, но техника обобщается на любую привилегированную рабочую нагрузку в кластере.

Проверено на Amazon EKS (ядро 6.12.80) — непривилегированный pod записывает [*] success в файловую систему хоста через привилегированный DaemonSet kube-proxy:

EKS PoC

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

Предыстория

Dirty Frag (CVE-2026-43284) — это уязвимость повреждения page-cache ядра Linux в пути приёма xfrm/ESP. В затронутом пути esp_input() может пропустить skb_cow_data() для нелинейного skb без frag_list, что позволяет crypto_authenc_esn_decrypt() сохранить 4 байта контролируемых атакующим данных в страницу page-cache, доступную через splice().

Файл на диске не изменяется. Повреждённые байты находятся в page-cache ядра и наблюдаются последующими читателями той же закэшированной страницы файла.

Полные подробности об исходной уязвимости см. в V4bel/dirtyfrag.

Принцип атаки

Атака использует три свойства, которые часто сосуществуют в кластерах Kubernetes:

  1. Повреждение page-cache ядра (CVE-2026-43284) — непривилегированный процесс (с поддержкой пользовательских пространств имён) может перезаписать закэшированные в памяти страницы любого файла, который он может открыть только для чтения, через гонку xfrm/ESP splice.
  2. Совместное использование слоёв образов — контейнерные рантаймы (containerd, CRI-O) используют overlay-файловые системы, где идентичные слои образов сопоставляются с одними и теми же страницами page-cache в разных контейнерах.
  3. Привилегированные DaemonSet'ы — во многих кластерах работают DaemonSet'ы с повышенными привилегиями (privileged: true, hostNetwork: true, широкие capabilities и т. д.), которые периодически выполняют бинарные файлы из своих образов.

Когда эти условия совпадают, непривилегированный pod может повредить бинарный файл в общем слое образа, а привилегированный DaemonSet на том же узле непреднамеренно выполнит повреждённый бинарный файл со своими повышенными привилегиями — достигая полного выполнения кода на уровне узла.

Цель уязвимости НЕ ограничивается kube-proxy. Любой привилегированный DaemonSet (агенты мониторинга, плагины CNI, сборщики логов, агенты безопасности и т. д.), чей образ контейнера разделяет слои с контролируемым атакующим образом, является жизнеспособной целью.

Отличие от Copy Fail

Этот проект вдохновлён моделью эксплуатации Kubernetes, задокументированной в Copy Fail Kubernetes PoC, но использует другой примитив ядра.

СвойствоCopy FailDirty Frag
CVECVE-2026-31431CVE-2026-43284
Путь в ядреAF_ALG + splice()xfrm/ESP + splice()
Требование к пространствам имёнНе требуетсяТребуются пользовательские пространства имён
Основная используемая capabilityНет в исходном контейнереCAP_NET_ADMIN внутри нового сетевого пространства имён
Соответствующий модульalgif_aeadesp4
Практическое отличиеНе работает, если вектор AF_ALG заблокированАктуально, когда AF_ALG недоступен, но ESP и пользовательские пространства имён включены

Как это работает

Цепочка атаки состоит из трёх этапов: повреждение page-cache, распространение между контейнерами и привилегированное выполнение.

1. Патчинг Page-Cache через xfrm/ESP

Бинарный файл PoC выполняет следующую последовательность из непривилегированного контейнера:

  1. Входит в новые пользовательское и сетевое пространства имён с помощью unshare(CLONE_NEWUSER | CLONE_NEWNET).
  2. Регистрирует множество xfrm Security Associations, чьи старшие поля последовательности кодируют 4-байтовые фрагменты полезной нагрузки.
  3. Открывает целевой бинарный файл из общего слоя образа только для чтения.
  4. Использует splice() и специально сформированный ESP-ввод для запуска уязвимого пути ядра.
  5. Повторяет примитив, пока содержимое page-cache целевого бинарного файла не будет содержать встроенную полезную нагрузку.

Права на запись в целевой файл не требуются. Файл на диске не изменяется — повреждается только page-cache в памяти.

2. Распространение между контейнерами через общие слои

Контейнерные рантаймы обслуживают чтение из нижних слоёв overlay через page-cache ядра. Если контейнер PoC и kube-proxy разделяют один и тот же файл нижнего слоя, оба наблюдают одни и те же закэшированные страницы.

Образ EKS в этом репозитории построен на основе:

public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-iptables:2026-03-11-1773190710.2023

Эта база выбрана для соответствия слою пользовательского инструментария kube-proxy EKS, используемому в проверенной среде.

3. Привилегированное выполнение через kube-proxy

Когда kube-proxy в следующий раз выполняет пропатченный бинарный файл семейства iptables, ядро загружает повреждённые закэшированные страницы. Полезная нагрузка PoC монтирует корневое устройство хоста и записывает файл-маркер в /root/res.

Ожидаемое содержимое маркера:

[*] success

Схема потока атаки

┌──────────────────────────────┐     ┌────────────────────────┐     ┌──────────────────────────┐
│  Pod PoC                     │     │  Page Cache ядра       │     │  DaemonSet kube-proxy    │
│  непривилегированный контейнер│     │                        │     │  привилегированный контейнер│
│                              │     │                        │     │                          │
│  1. unshare user+net ns      │     │                        │     │                          │
│  2. установка xfrm SA        │     │                        │     │                          │
│  3. splice целевого бинарника│────▶│  бинарник общего слоя  │────▶│  выполняет пропатченный  │
│     через путь ESP           │     │  page cache пропатчен  │     │  бинарник, полезная      │
│                              │     │                        │     │  нагрузка работает с     │
│                              │     │                        │     │  привилегиями уровня узла│
└──────────────────────────────┘     └────────────────────────┘     └──────────────────────────┘

Проверенная среда

Amazon EKS

Скачать инструмент