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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-46331-audit — cve-2026-46331-audit script | Kitploit
Инструменты/GitHubGitHub/quaerendir/cve-2026-46331-audit
Privilege EscalationVulnerability AnalysisExploitationForensicsPapers & ResearchLearning & EducationIncident Response
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

cve-2026-46331-audit script

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

Популярное

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

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

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

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

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

cve-2026-46331-audit

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

root@kitploit:~
   ____  _____ ____ ___ _____      ____ _____        __
  |  _ \| ____|  _ \_ _|_   _|    / ___/ _ \ \      / /
  | |_) |  _| | | | | |  | |     | |  | | | \ \ /\ / /
  |  __/| |___| |_| | |  | |     | |__| |_| |\ V  V /
  |_|   |_____|____/___| |_|      \____\___/  \_/\_/
     CVE-2026-46331    net/sched act_pedit partial COW

TL;DR

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

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

Что делает этот сценарий

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

  • Инвентаризирует работающее ядро, дистрибутив, версию пакета ядра.
  • Проверяет достижимость act_pedit по четырем независимым сигналам:
    • текущая загрузка (lsmod)
    • загружаемо по запросу (modinfo)
    • встроено в работающее ядро (/boot/config-$(uname -r), /proc/config.gz, modules.builtin)
    • заблокировано через blacklist или переопределение install ... /bin/true в modprobe.d
  • Перечисляет существующие правила tc action pedit (информационно; без изменений).
  • Читает шлюзы пространств имён пользователей: user.max_user_namespaces, kernel.unprivileged_userns_clone и ограничения AppArmor в Ubuntu.

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

root@kitploit:~
sudo ./cve-2026-46331-audit.sh                       # полный текстовый отчёт
sudo ./cve-2026-46331-audit.sh --json                # машиночитаемый JSON, без баннера
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # однострочный вердикт для массового сканирования
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # расширение окна поиска IoC
sudo ./cve-2026-46331-audit.sh --no-banner           # текстовый отчёт без ASCII-баннера

Коды выхода

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

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

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

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

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

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

Ansible

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

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

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

Failed_when в play-книге

root@kitploit:~
- 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

Смягчающие меры (если нужно отложить исправление)

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

root@kitploit:~
# Вариант 1: заблокировать act_pedit, если вы его не используете.
tc actions list action pedit                  # ДОЛЖНО быть пустым перед этим действием
echo 'install act_pedit /bin/true' | sudo tee /etc/modprobe.d/disable-act_pedit.conf
lsmod | grep -q act_pedit && sudo rmmod act_pedit
root@kitploit:~
# Вариант 2: ограничить непривилегированные пространства имён пользователей.
# Нарушит работу rootless Podman/Docker, песочниц браузера, Flatpak, непривилегированного unshare, некоторых CI-песочниц.
sudo sysctl -w user.max_user_namespaces=0           # Семейство EL
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu

Реальное исправление — обновление ядра от вендора и перезагрузка. uname -r после перезагрузки — единственное, что это подтверждает.

Контекст семейства ошибок

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

Rust в ядре решает именно этот класс через типы владения. Завтра в net/sched этого не появится.

Ссылки

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-46331
  • Red Hat: https://access.redhat.com/security/vulnerabilities/RHSB-2026-008
  • Ubuntu: https://ubuntu.com/security/CVE-2026-46331
  • Debian: https://security-tracker.debian.org/tracker/CVE-2026-46331
  • Коммит и описание upstream: см. ссылки в записи NVD.

Лицензия

MIT. См. LICENSE.

Отказ от ответственности

Для авторизованного защитного использования на системах, которыми вы владеете или на которые имеете явное разрешение на аудит. Сценарий никогда не выполняет публичный PoC, не изменяет состояние системы и не загружает модули. Относитесь к вердикту как к триажу, а не как к доказательству компрометации или безопасности.

Скачать инструмент
CVECVE-2026-46331
КомпонентLinux kernel net/sched / act_pedit
КлассЧастичный COW → повреждение страничного кеша → LPE
Вектор атакиЛокальный (CAP_NET_ADMIN, обычно получаемый через непривилегированные пространства имён пользователей)
Затронутые версии upstream5.18 .. 7.1-rc6
Исправление upstream7.1-rc7
Публичный PoCpacket_edit_meme (проверено на RHEL 10, Debian 13, Ubuntu 24.04.4)
Серьёзность Red HatВажная
SUSE CVSS 3.17.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
  • Эвристическая матрица исправлений вендоров по /etc/os-release (RHEL 8/9/10, Debian 11/12/13/14, Ubuntu 18.04→26.04, SUSE, Amazon Linux, Arch-family rolling).
  • Опциональный поиск индикаторов компрометации поведения через auditd и journalctl (настраиваемое окно через --since).
  • Оценка риска 0-100 и итоговый вердикт: PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN.
  • Коды выхода, предназначенные для оркестрации флота.
  • КодЗначение
    0PATCHED или NOT_APPLICABLE (ядро предшествует ошибке)
    1MITIGATED (активно смягчение, ядро всё ещё уязвимо, всё равно примените исправление)
    2VULNERABLE (выполнено одно или несколько необходимых условий, ядро не исправлено)
    3UNKNOWN (считайте подозрительным в общих/CI/Kubernetes контекстах)
    4ERROR (сценарий не может быть запущен; отсутствующие инструменты или неправильное окружение)
    СигналВес
    Vendor verdict VULNERABLE+50
    Vendor verdict UNKNOWN+30
    act_pedit встроено в ядро+25
    act_pedit загружаемо, не переопределено+20
    act_pedit загружаемо, активно переопределение+5
    act_pedit сейчас загружено+5
    Непривилегированное userns доступно, без шлюза AppArmor+15
    Непривилегированное userns доступно, активно шлюз AppArmor+8
    IoC найдены в окне поиска+10
    CVEГодПодсистемаПримитив
    CVE-2016-51952016mmCOW race on read-only mapping
    CVE-2022-08472022pipe / splicepipe_buffer flag leak into page cache
    CVE-2026-314312026crypto AF_ALG/AEADin-place crypto over read-only file cache
    CVE-2026-463002026XFRM ESP-in-TCPskbuff shared-frag marker loss
    CVE-2026-463312026net/sched act_peditpartial COW from late-resolved typed-key offset