Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2026-46331-audit — Script d'audit cve-2026-46331 | Kitploit
Outils/GitHubGitHub/quaerendir/cve-2026-46331-audit
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationAnalyse ForensiqueArticles et RechercheApprentissage et ÉducationRéponse aux Incidents
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

Script d'audit cve-2026-46331

Voir le dépôt
25il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

cve-2026-46331-audit

CVE Name CVSS Disclosed Shell License Version CI

Script d'audit en lecture seule pour CVE-2026-46331 (aussi appelé pedit COW) — une faille de copie sur écriture partielle dans l'action act_pedit de net/sched du noyau Linux qui permet à un utilisateur local non privilégié de corrompre la mémoire du cache de pages et d'élever ses privilèges jusqu'à root.

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

TL;DR

tcf_pedit_act() calcule la plage COW pour skb_ensure_writable() une seule fois avant la boucle sur les clés, en utilisant tcfp_off_max_hint. Les clés typées ajoutent un décalage d'en-tête à l'exécution que l'indice ne couvre pas, de sorte qu'une partie de l'écriture finale se produit en dehors de la région COW. Résultat : les pages partagées du cache de pages sont écrasées, et un binaire setuid mis en cache (cible classique : /bin/su) peut être empoisonné en mémoire. Les hachages sur disque restent intacts. Les moniteurs d'intégrité des fichiers ne le verront pas.

Même famille de bugs que Dirty COW (CVE-2016-5195), Dirty Pipe (CVE-2022-0847), Copy Fail (CVE-2026-31431) et Dirty Frag (CVE-2026-46300). Le point d'entrée est différent, la défaillance de propriété des pages est la même.

CVECVE-2026-46331
ComposantNoyau Linux net/sched / act_pedit
ClasseCOW partiel → corruption du cache de pages → LPE
Vecteur d'attaqueLocal (CAP_NET_ADMIN, généralement acquis via un userns non privilégié)
Affecté en amont5.18 .. 7.1-rc6
Correctif en amont7.1-rc7
PoC publicpacket_edit_meme (vérifié sur RHEL 10, Debian 13, Ubuntu 24.04.4)
Sévérité Red HatImportant
CVSS 3.1 SUSE7.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)

Ce que fait ce script

Triage strictement en lecture seule. Ne charge jamais de module, ne touche jamais à sysctl, n'exécute jamais de PoC. Conçu pour être sûr à exécuter en production.

  • Inventorie le noyau en cours d'exécution, la distribution, la version du paquet noyau.
  • Sonde l'accessibilité de act_pedit via quatre signaux indépendants :
    • actuellement chargé (lsmod)
    • chargeable à la demande (modinfo)
    • intégré au noyau en cours d'exécution (/boot/config-$(uname -r), /proc/config.gz, modules.builtin)
    • bloqué par une surcharge install ... /bin/true dans modprobe.d, ou par blacklist sur les noyaux qui chargent automatiquement act_pedit via son alias net-act-pedit (6.9+ ; les noyaux plus anciens le demandent par son nom, ce que blacklist n'arrête pas)
  • Liste les règles tc action pedit existantes (à titre informatif ; aucune modification).
  • Lit les verrous userns / netns : user.max_user_namespaces, kernel.unprivileged_userns_clone, user.max_net_namespaces, et les restrictions userns AppArmor d'Ubuntu.
  • Matrice heuristique des correctifs par éditeur selon /etc/os-release (RHEL 8/9/10, Debian 11/12/13/14, Ubuntu 18.04→26.04, SUSE, Amazon Linux, famille Arch en rolling release).
  • Chasse optionnelle aux IoC comportementaux via auditd et journalctl (fenêtre configurable via --since et --until).
  • Score de risque de 0 à 100 et verdict final : PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN.
  • Codes de sortie conçus pour l'orchestration de parc.

Utilisation

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

Codes de sortie

CodeSignification
0PATCHED ou NOT_APPLICABLE (le noyau est antérieur au bug)
1MITIGATED (atténuation active, le noyau reste vulnérable, appliquez le correctif malgré tout)
2VULNERABLE (une ou plusieurs préconditions requises sont remplies, aucun noyau corrigé)
3UNKNOWN (à considérer comme suspect dans les contextes mutualisés / CI / Kubernetes)
4ERROR (le script n'a pas pu s'exécuter ; outils manquants ou environnement défaillant)

Exemple de sortie

Voir examples/sample-output.txt pour une exécution complète, et examples/sample-output.json pour la forme JSON.

Modèle de notation du risque

Le score est une combinaison pondérée de :

SignalPoids
Verdict du fournisseur VULNERABLE+50
Verdict du fournisseur UNKNOWN+30
act_pedit intégré au noyau+25
act_pedit chargeable, sans override+20
act_pedit chargeable, override ou blacklist actif+5
act_pedit actuellement chargé+5
userns+netns non privilégiés accessibles, sans barrière AppArmor+15
userns+netns non privilégiés accessibles, barrière AppArmor active+8
IoC trouvés dans la fenêtre de chasse+10

Plafonné à 100. Tout ce qui dépasse ~70 doit être traité comme urgent sur les nœuds multi-tenant / CI / Kubernetes ; en dessous de ~20, c'est généralement une confirmation que l'hôte est sain.

Déploiement massif

Ansible

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

Puis agrégez avec jq :

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

failed_when dans un 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

Atténuations (si vous devez retarder le correctif)

Par ordre de préférence. Le script recommandera la bonne en fonction de ce qu'il a trouvé.

# 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
Télécharger l’outil