Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 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
3il y a 2 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

Script d'audit en lecture seule pour CVE-2026-46331 (alias pedit COW) — un bogue de copie partielle sur écriture (partial copy‑on‑write) dans l'action net/sched act_pedit 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 vers root.

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

En résumé

tcf_pedit_act() calcule la plage COW pour skb_ensure_writable() une seule fois avant la boucle principale, 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 : des pages partagées du cache de pages sont modifiées, et un binaire setuid mis en cache (cible classique : /bin/su) peut être empoisonné en mémoire. Les empreintes sur disque restent intactes. Les moniteurs d'intégrité de fichiers ne le verront pas.

Même famille de bogues 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 diffère, mais l'échec de propriété des pages est le même.

Ce que fait le 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, la distribution, la version du paquet noyau.
  • Sonde la joignabilité de act_pedit via quatre signaux indépendants :
    • chargé actuellement (lsmod)
    • chargeable à la demande (modinfo)
    • intégré au noyau en cours (/boot/config-$(uname -r), /proc/config.gz, modules.builtin)
    • bloqué par une blacklist ou une redirection install ... /bin/true dans modprobe.d
  • Liste les règles tc action pedit existantes (informations ; aucune modification).
  • Lit les barrières userns : user.max_user_namespaces, kernel.unprivileged_userns_clone et les restrictions AppArmor Ubuntu sur les userns.

Utilisation

root@kitploit:~
sudo ./cve-2026-46331-audit.sh                       # rapport textuel complet
sudo ./cve-2026-46331-audit.sh --json                # JSON lisible par machine, sans bannière
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # verdict en une ligne pour les scans de masse
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # élargir la fenêtre de chasse d'IoC
sudo ./cve-2026-46331-audit.sh --no-banner           # rapport textuel sans la bannière ASCII

Codes de sortie

Exemple de sortie

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

Modèle de score de risque

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

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

Déploiement de masse

Ansible

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

Puis agréger avec jq :

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

failed_when dans un play

root@kitploit:~
- name: auditer 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 meilleure selon ce qu'il a trouvé.

root@kitploit:~
# Option 1 : bloquer act_pedit si vous ne l'utilisez pas.
tc actions list action pedit                  # DOIT être vide avant de faire cela
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:~
# Option 2 : restreindre les espaces de noms utilisateur non privilégiés.
# Va casser Podman/Docker sans root, les sandbox navigateur, Flatpak, unshare non privilégié, certains sandbox CI.
sudo sysctl -w user.max_user_namespaces=0           # famille EL
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu

Le vrai correctif est une mise à jour du noyau fournisseur suivie d'un redémarrage. uname -r après redémarrage est la seule preuve.

Contexte de la famille de bogues

C'est la cinquième itération du même échec architectural. Chacune a corrigé la cause immédiate, aucune n'a corrigé la cause racine : des chemins rapides de copie zéro partageant des pages au‑delà des frontières de propriété, où chaque écrivain doit prouver la confidentialité avant de modifier des octets, sur des centaines de points d'appel.

Rust dans le noyau adresse exactement cette classe via les types de propriété. Cela n'arrivera pas dans net/sched demain.

Références

  • 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
  • Commit amont et description : voir les références de l'enregistrement NVD.

Licence

MIT. Voir LICENSE.

Avertissement

Pour une utilisation défensive autorisée sur des systèmes que vous possédez ou pour lesquels vous avez l'autorisation explicite d'auditer. Le script n'exécute jamais le PoC public, ne modifie jamais l'état du système et ne charge jamais de modules. Traitez le verdict comme un triage, non comme une preuve de compromission ou de sécurité.

Télécharger l’outil
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 obtenu via un userns non privilégié)
Versions amont affectées5.18 .. 7.1-rc6
Correctif amont7.1-rc7
PoC publicpacket_edit_meme (vérifié sur RHEL 10, Debian 13, Ubuntu 24.04.4)
Sévérité Red HatImportante
CVSS 3.1 SUSE7.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
  • Matrice de correctifs fournisseur heuristique selon /etc/os-release (RHEL 8/9/10, Debian 11/12/13/14, Ubuntu 18.04→26.04, SUSE, Amazon Linux, Arch rolling).
  • Chasse facultative d'IoC comportementaux via auditd et journalctl (fenêtre configurable avec --since).
  • Score de risque de 0 à 100 et verdict final : PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN.
  • Codes de sortie conçus pour l'orchestration de flottes.
  • CodeSignification
    0PATCHED ou NOT_APPLICABLE (le noyau est antérieur au bogue)
    1MITIGATED (atténuation active, noyau toujours vulnérable, appliquer le correctif quand même)
    2VULNERABLE (une ou plusieurs conditions préalables requises sont remplies, noyau non corrigé)
    3UNKNOWN (à traiter comme suspect dans les contextes partagés / CI / Kubernetes)
    4ERROR (le script n'a pas pu s'exécuter ; outils manquants ou environnement inadapté)
    SignalPoids
    Verdict fournisseur VULNERABLE+50
    Verdict fournisseur UNKNOWN+30
    act_pedit intégré au noyau+25
    act_pedit chargeable, sans redirection+20
    act_pedit chargeable, redirection active+5
    act_pedit actuellement chargé+5
    Userns non privilégié accessible, sans barrière AppArmor+15
    Userns non privilégié accessible, barrière AppArmor active+8
    IoC trouvés dans la fenêtre de chasse+10
    CVEAnnéeSous-systèmePrimitive
    CVE-2016-51952016mmCourse COW sur un mapping en lecture seule
    CVE-2022-08472022pipe / spliceFuite du drapeau pipe_buffer dans le cache de pages
    CVE-2026-314312026crypto AF_ALG/AEADCrypto en place sur un cache de fichier en lecture seule
    CVE-2026-463002026XFRM ESP-in-TCPPerte du marqueur de fragment partagé skbuff
    CVE-2026-463312026net/sched act_peditCOW partiel dû à un décalage de clé typée résolu tardivement