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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-46331-audit — cve-2026-46331-audit script | Kitploit
Инструменты/GitHubGitHub/quaerendir/cve-2026-46331-audit
Повышение привилегийАнализ уязвимостейЭксплуатацияФорензикаСтатьи и ИсследованияОбучение и ОбразованиеРеагирование на Инциденты
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

cve-2026-46331-audit script

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

Популярное

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

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

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

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

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

cve-2026-46331-audit

CVE Name CVSS Disclosed Shell License Version CI

Скрипт аудита только для чтения для CVE-2026-46331 (также известной как pedit COW) — ошибки частичного copy-on-write в действии act_pedit подсистемы net/sched ядра Linux, которая позволяет локальному непривилегированному пользователю повредить память page cache и повысить привилегии до root.

   ____  _____ ____ ___ _____      ____ _____        __
  |  _ \| ____|  _ \_ _|_   _|    / ___/ _ \ \      / /
  | |_) |  _| | | | | |  | |     | |  | | | \ \ /\ / /
  |  __/| |___| |_| | |  | |     | |__| |_| |\ V  V /
  |_|   |_____|____/___| |_|      \____\___/  \_/\_/
     CVE-2026-46331    net/sched act_pedit partial COW

TL;DR

tcf_pedit_act() вычисляет диапазон COW для skb_ensure_writable() один раз перед циклом по ключам, используя tcfp_off_max_hint. Типизированные ключи добавляют смещение заголовка во время выполнения, которое не покрывается этим hint, поэтому часть итоговой записи выходит за пределы COW-области. Результат: общие страницы page cache подвергаются записи, и кэшированный бинарник setuid (классическая цель: /bin/su) может быть отравлен в памяти. Хэши на диске остаются чистыми. Мониторы целостности файлов этого не увидят.

То же семейство ошибок, что и Dirty COW (CVE-2016-5195), Dirty Pipe (CVE-2022-0847), Copy Fail (CVE-2026-31431) и Dirty Frag (CVE-2026-46300). Точка входа другая, сбой владения страницами тот же.

CVECVE-2026-46331
КомпонентЯдро Linux net/sched / act_pedit
КлассЧастичный COW → повреждение page cache → LPE
Вектор атакиЛокальный (CAP_NET_ADMIN, обычно получаемый через непривилегированный userns)
Затронуто в upstream5.18 .. 7.1-rc6
Исправление в upstream7.1-rc7
Публичный PoCpacket_edit_meme (проверено на RHEL 10, Debian 13, Ubuntu 24.04.4)
Критичность по Red HatImportant
SUSE CVSS 3.17.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)

Что делает этот скрипт

Строго read-only триаж. Никогда не загружает модуль, никогда не трогает sysctl, никогда не выполняет PoC. Разработан так, чтобы его было безопасно запускать на продакшене.

  • Инвентаризирует работающее ядро, дистрибутив, версию пакета ядра.
  • Проверяет доступность act_pedit по четырём независимым сигналам:
    • загружен в данный момент (lsmod)
    • загружаем по требованию (modinfo)
    • встроен в работающее ядро (/boot/config-$(uname -r), /proc/config.gz, modules.builtin)
    • заблокирован переопределением install ... /bin/true в modprobe.d или blacklist на ядрах, которые автозагружают act_pedit через его алиас net-act-pedit (6.9+; более старые ядра запрашивают его по имени, что blacklist не останавливает)
  • Перечисляет существующие правила tc action pedit (информационно; без изменений).
  • Читает ограничения userns / netns: user.max_user_namespaces, kernel.unprivileged_userns_clone, user.max_net_namespaces и ограничения userns в AppArmor на Ubuntu.
  • Эвристическая матрица патчей вендоров по /etc/os-release (RHEL 8/9/10, Debian 11/12/13/14, Ubuntu 18.04→26.04, SUSE, Amazon Linux, семейство Arch с rolling-релизами).
  • Опциональный поведенческий поиск IoC через auditd и journalctl (настраиваемое окно через --since и --until).
  • Оценка риска 0-100 и итоговый вердикт: PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN.
  • Коды выхода, рассчитанные на оркестрацию парка машин.

Использование

sudo ./cve-2026-46331-audit.sh                       # full text report
sudo ./cve-2026-46331-audit.sh --json                # machine-readable JSON, no banner
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # one-line verdict for mass scans
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # widen IoC hunt window
sudo ./cve-2026-46331-audit.sh --since 2026-06-01 --until 2026-09-01  # bounded IoC window
sudo ./cve-2026-46331-audit.sh --no-banner           # text report without the ASCII banner
./cve-2026-46331-audit.sh --version                  # print script version and exit

Коды выхода

КодЗначение
0PATCHED или NOT_APPLICABLE (ядро старше уязвимости)
1MITIGATED (защитная мера активна, ядро всё ещё уязвимо, патч всё равно нужен)
2VULNERABLE (выполнено одно или несколько обязательных предварительных условий, исправленного ядра нет)
3UNKNOWN (считать подозрительным в контекстах shared / CI / Kubernetes)
4ERROR (скрипт не смог запуститься; отсутствуют инструменты или неверное окружение)

Пример вывода

См. examples/sample-output.txt для полного запуска и examples/sample-output.json для формы JSON.

Модель оценки риска

Оценка представляет собой взвешенную комбинацию:

СигналВес
Вердикт вендора VULNERABLE+50
Вердикт вендора UNKNOWN+30
act_pedit встроен в ядро+25
act_pedit загружаемый, без переопределения+20
act_pedit загружаемый, переопределение или чёрный список активны+5
act_pedit в данный момент загружен+5
Непривилегированные userns+netns доступны, без AppArmor-ограничения+15
Непривилегированные userns+netns доступны, AppArmor-ограничение активно+8
IoC найдены в окне поиска+10

Ограничено 100. Всё выше ~70 следует считать срочным на многоарендных / CI / Kubernetes узлах; ниже ~20 обычно подтверждает, что хост в порядке.

Массовое развёртывание

Ansible

ansible -i inventory all -m script \
  -a "cve-2026-46331-audit.sh --json --quiet --no-hunt" \
  --become \
  | tee /tmp/audit.jsonl

Затем агрегируйте с помощью jq:

grep -v '^[a-z]' /tmp/audit.jsonl | jq -s 'group_by(.verdict) | map({verdict: .[0].verdict, hosts: length})'

failed_when в play

- name: audit CVE-2026-46331
  ansible.builtin.script: cve-2026-46331-audit.sh --quiet --no-hunt
  register: audit
  failed_when: audit.rc == 2
  changed_when: false

Меры защиты (если вам нужно отложить установку патча)

В порядке предпочтения. Скрипт порекомендует подходящий вариант на основе того, что он обнаружил.

# Option 1: block act_pedit if you don't use it.
tc actions list action pedit                  # MUST be empty before doing this

# 1a) Hard block via modprobe install override (strongest).
echo 'install act_pedit /bin/true' | sudo tee /etc/modprobe.d/disable-act_pedit.conf

# 1b) `blacklist act_pedit` only stops the autoload on kernels 6.9+, which
#     request the "net-act-pedit" alias. Older kernels load it by name and
#     ignore the blacklist, so prefer 1a. Check your kernel:
modinfo -F alias act_pedit | grep -qx net-act-pedit && echo "blacklist works here"

lsmod | grep -q act_pedit && sudo rmmod act_pedit
# Option 2: restrict unprivileged user namespaces.
# Will break rootless Podman/Docker, browser sandboxes, Flatpak, unprivileged unshare, some CI sandboxes.
sudo sysctl -w user.max_user_namespaces=0           # EL-family
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu
Скачать инструмент