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

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

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

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

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

Категории

Все категории
Loading categories
page-cache-corruption-lpes — CVE-2026-46331 and CVE-2026-43503 | Kitploit
Инструменты/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Privilege EscalationVulnerability AnalysisExploitationCTFLearning & EducationBinary Exploitation
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 and CVE-2026-43503

Репозиторий
12329 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Page Cache Corruption LPEs

3 эксплуатации локального повышения привилегий для ядра Linux. Тот же класс ошибок, что и Dirty COW и Dirty Pipe. Root-доступ за секунды. Затронуты все основные дистрибутивы.

Все три повреждают кэш страниц ядра — копию файлов в памяти, из которой процессы фактически читают и выполняют. Файл на диске никогда не затрагивается. Инструменты проверки целостности файлов ничего не видят. execve("/usr/bin/su") загружается из кэша → выполняется ваш шеллкод → root.


Эксплойты

ЭксплойтCVEМеханизмВремя до rootСтрок
Dirty PeditCVE-2026-46331Окно COW TC pedit (переполнение u32)< 1 секунды275
skb_shiftCVE-2026-43503Потеря флага передачи фрагмента TCP SACK~10 секунд500
GRO Flag LossCVE-2026-43503Потеря флага передачи фрагмента при слиянии GRO~10 секунд550

Все три: непривилегированный → root. Никаких специальных разрешений. Только пользовательские пространства имён.


Какой класс ошибок?

Каждый эксплойт в этом репозитории следует одному шаблону:

root@kitploit:~
1. Получить страницы кэша страниц в буфер ядра (splice)
2. Обойти защиту копирования при записи
3. Записать на месте → файл, доступный только для чтения, повреждён в памяти

Разница заключается в ТОМ, КАК обходится защита и ЧТО выполняет запись:


Родословная

root@kitploit:~
2016  Dirty COW         Гонка COW через mmap + fork
2022  Dirty Pipe        Застарелый PIPE_BUF_FLAG_CAN_MERGE в splice
2026  Copy Fail         AEAD на месте AF_ALG на scatterlist кэша страниц
2026  Dirty Frag        ESP skip_cow на фрагментированных splice (отсутствующий флаг)
2026  Fragnesia         skb_try_coalesce сбрасывает флаг SHARED_FRAG
2026  Dirty Pedit  ←    Окно COW TC pedit, криптография не требуется
2026  skb_shift    ←    TCP SACK сбрасывает SHARED_FRAG, ESP записывает
2026  GRO Flag Loss ←   Слияние GRO сбрасывает SHARED_FRAG, ESP записывает

Затронутые версии

Конфигурации по умолчанию. Для уязвимости не требуется дополнительное hardening. Если вы используете Linux, вы были затронуты.


Почему Dirty Pedit отличается

skb_shift и GRO используют одну и ту же технику эксплуатации: потерять флаг SKBFL_SHARED_FRAG, затем позволить криптографии ESP выполнять XOR в страницы кэша страниц по одному байту за раз, используя предварительно вычисленную таблицу поиска IV.

Dirty Pedit — это совершенно другой зверь:

  • Без криптографии. Ни XFRM, ни ESP, ни AES-GCM, ни таблиц IV.
  • Прямая запись. TC pedit записывает именно те байты, которые вы указываете, через skb_store_bits.
  • Меньше секунды. Один пакет = 12 записанных байт. Root за один раз.
  • Другой обход защиты. Не затрагивает SHARED_FRAG вообще — ломает skb_ensure_writable через целочисленное переполнение.

Сборка

root@kitploit:~
# Сборка всех трёх
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

Каждый эксплойт — это один самодостаточный файл на C. Зависимостей, кроме libc, нет.


Запуск

root@kitploit:~
# Любой из трёх (без привилегий):
./exploit
# → root shell

Требуется: ядро Linux в диапазоне затронутых версий + CONFIG_USER_NS=y (по умолчанию во всех основных дистрибутивах).


Вывод (Dirty Pedit)

root@kitploit:~
[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

Вывод (skb_shift / GRO)

root@kitploit:~
[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

Ключевые свойства


Ответственное раскрытие

Все уязвимости были ответственно раскрыты команде по безопасности ядра Linux и разработчикам сети. Патчи объединены в вышестоящей ветке и перенесены в стабильные деревья.

  • CVE-2026-46331: Исправлено в v7.1-rc7, коммит 899ee91156e5
  • CVE-2026-43503: Исправлено в v7.1-rc5, коммит 48f6a5356a33

Эти эксплойты опубликованы в образовательных и защитных целях после того, как были доступны патчи. Повреждение кэша страниц — только в памяти; перезагрузка или echo 1 > /proc/sys/vm/drop_caches восстанавливает исходные файлы.


Автор

Rajat Gupta — Offensive Security @ Qualcomm


Лицензия

MIT

Скачать инструмент
ЭксплойтОбойдённая защитаЗаписывающий
Dirty Peditskb_ensure_writable (переполнение u32 → частичное COW)skb_store_bits (прямая запись 4 байт)
skb_shiftФлаг SKBFL_SHARED_FRAG потерян во время TCP SACKРасшифровка ESP AES-GCM (1 байт на пакет)
GRO Flag LossФлаг SKBFL_SHARED_FRAG потерян во время слияния GROРасшифровка ESP AES-GCM (1 байт на пакет)
ЭксплойтВведёнИсправленЗатронутые дистрибутивы
Dirty Peditv5.18 (май 2022)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc5Каждый дистрибутив за 13 лет
GRO Flag Lossv3.9 (2013)v7.1-rc5Каждый дистрибутив за 13 лет
СвойствоDirty Peditskb_shiftGRO
ПривилегииНет (userns)Нет (userns)Нет (userns)
Доступ к файлуO_RDONLYO_RDONLYO_RDONLY
КриптографияНетДа (AES-GCM)Да (AES-GCM)
Управление записью4 байта/пакет1 байт/пакет1 байт/пакет
НадёжностьДетерминированноДетерминированноВероятностно (повтор)
Побег из контейнера K8sНет (veth не нужен)НетДа (veth+GRO по умолчанию)
Поверхность атакиgeneve + TCloopback + espintcpveth + ESP-in-UDP