Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-46331-audit — cve-2026-46331-audit script | Kitploit
Strumenti/GitHubGitHub/quaerendir/cve-2026-46331-audit
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitInformatica ForensePaper e RicercaApprendimento e FormazioneRisposta agli Incidenti
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

cve-2026-46331-audit script

Vedi Repository
1 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

cve-2026-46331-audit

Script di audit di sola lettura per CVE-2026-46331 (alias pedit COW) — un bug parziale copy-on-write nell'azione net/sched act_pedit del kernel Linux che consente a un utente locale non privilegiato di corrompere la memoria della cache delle pagine ed escalare a root.

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

TL;DR

tcf_pedit_act() calcola l'intervallo COW per skb_ensure_writable() una sola volta prima del ciclo delle chiavi, usando tcfp_off_max_hint. Le chiavi tipizzate aggiungono un offset di intestazione a runtime che l'hint non copre, quindi parte della scrittura finale cade fuori dalla regione COW. Risultato: le pagine condivise della cache delle pagine vengono sovrascritte, e un binario setuid in cache (bersaglio classico: /bin/su) può essere avvelenato in memoria. Gli hash su disco restano puliti. I monitor di integrità dei file non lo vedranno.

Stessa famiglia di bug di Dirty COW (CVE-2016-5195), Dirty Pipe (CVE-2022-0847), Copy Fail (CVE-2026-31431) e Dirty Frag (CVE-2026-46300). Il punto di ingresso è diverso, il fallimento della proprietà delle pagine è lo stesso.

Cosa fa questo script

Triage strettamente in sola lettura. Non carica mai un modulo, non tocca sysctl, non esegue mai un PoC. Progettato per essere sicuro da eseguire in produzione.

  • Inventaria kernel in esecuzione, distribuzione, versione del pacchetto kernel.
  • Sonda la raggiungibilità di act_pedit attraverso quattro segnali indipendenti:
    • caricato al momento (lsmod)
    • caricabile su richiesta (modinfo)
    • integrato nel kernel in esecuzione (/boot/config-$(uname -r), /proc/config.gz, modules.builtin)
    • bloccato da blacklist o override install ... /bin/true in modprobe.d
  • Elenca le regole tc action pedit esistenti (informativo; nessuna modifica).
  • Legge i gate degli userns: user.max_user_namespaces, kernel.unprivileged_userns_clone e le restrizioni AppArmor degli userns di Ubuntu.
  • Matrice euristica delle patch dei fornitori per /etc/os-release (RHEL 8/9/10, Debian 11/12/13/14, Ubuntu 18.04→26.04, SUSE, Amazon Linux, famiglia Arch rolling).

Utilizzo

root@kitploit:~
sudo ./cve-2026-46331-audit.sh                       # report testuale completo
sudo ./cve-2026-46331-audit.sh --json                # JSON leggibile dalla macchina, nessun banner
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # verdetto in una riga per scansioni di massa
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # amplia la finestra di caccia agli IoC
sudo ./cve-2026-46331-audit.sh --no-banner           # report testuale senza il banner ASCII

Codici di uscita

Output di esempio

Vedi examples/sample-output.txt per un'esecuzione completa, e examples/sample-output.json per il formato JSON.

Modello di punteggio del rischio

Il punteggio è una combinazione pesata di:

Massimo 100. Sopra ~70 va trattato come urgente su nodi multi-tenant / CI / Kubernetes; sotto ~20 di solito è una conferma che l'host è a posto.

Distribuzione di massa

Ansible

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

Poi aggrega con jq:

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

Failed_when in un 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

Mitigazioni (se devi ritardare l'applicazione della patch)

In ordine di preferenza. Lo script consiglierà quella giusta in base a ciò che ha trovato.

root@kitploit:~
# Opzione 1: blocca act_pedit se non lo usi.
tc actions list action pedit                  # DEVE essere vuoto prima di farlo
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:~
# Opzione 2: limita i namespace utente non privilegiati.
# Romperà Podman/Docker rootless, sandbox del browser, Flatpak, unshare non privilegiato, alcune sandbox CI.
sudo sysctl -w user.max_user_namespaces=0           # famiglia EL
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu

La vera soluzione è un aggiornamento del kernel del fornitore più un riavvio. uname -r dopo il riavvio è l'unica cosa che lo dimostra.

Contesto della famiglia di bug

Questa è la quinta iterazione dello stesso fallimento architetturale. Ognuna ha corretto la causa prossima, nessuna ha corretto la causa principale: percorsi rapidi a copia zero che condividono pagine attraverso confini di proprietà, dove ogni scrittore deve dimostrare la privacy prima di mutare byte, in centinaia di siti di chiamata.

Rust nel kernel affronta esattamente questa classe tramite tipi di proprietà. Non comparirà in net/sched domani.

Riferimenti

  • 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 a monte e descrizione: vedere i riferimenti del record NVD.

Licenza

MIT. Vedi LICENSE.

Dichiarazione di non responsabilità

Per uso difensivo autorizzato su sistemi di tua proprietà o per i quali hai esplicitamente il permesso di eseguire audit. Lo script non esegue mai il PoC pubblico, non modifica mai lo stato del sistema e non carica mai moduli. Tratta il verdetto come triage, non come prova di compromissione o prova di sicurezza.

Scarica lo strumento
CVECVE-2026-46331
ComponenteKernel Linux net/sched / act_pedit
ClasseCOW parziale → corruzione cache pagine → LPE
Vettore d'attaccoLocale (CAP_NET_ADMIN, solitamente acquisito tramite userns non privilegiato)
Affetto a monte5.18 .. 7.1-rc6
Fix a monte7.1-rc7
PoC pubblicopacket_edit_meme (verificato su RHEL 10, Debian 13, Ubuntu 24.04.4)
Severità Red HatImportante
CVSS 3.1 SUSE7.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
  • Caccia facoltativa agli IoC comportamentali tramite auditd e journalctl (finestra configurabile con --since).
  • Punteggio di rischio 0-100 e verdetto finale: PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN.
  • Codici di uscita progettati per l'orchestrazione di flotte.
  • CodiceSignificato
    0PATCHED o NOT_APPLICABLE (kernel precedente al bug)
    1MITIGATED (mitigazione attiva, kernel ancora vulnerabile, applicare comunque la patch)
    2VULNERABLE (una o più precondizioni necessarie soddisfatte, nessun kernel corretto)
    3UNKNOWN (trattare come sospetto in contesti condivisi / CI / Kubernetes)
    4ERROR (script non eseguibile; strumenti mancanti o ambiente non valido)
    SegnalePeso
    Verdetto del fornitore VULNERABLE+50
    Verdetto del fornitore UNKNOWN+30
    act_pedit integrato nel kernel+25
    act_pedit caricabile, nessun override+20
    act_pedit caricabile, override attivo+5
    act_pedit attualmente caricato+5
    userns non privilegiato raggiungibile, nessun gate AppArmor+15
    userns non privilegiato raggiungibile, gate AppArmor attivo+8
    IoC trovati nella finestra di caccia+10
    CVEAnnoSottosistemaPrimitiva
    CVE-2016-51952016mmGara COW su mapping sola lettura
    CVE-2022-08472022pipe / splicePerdita del flag pipe_buffer nella cache delle pagine
    CVE-2026-314312026crypto AF_ALG/AEADCrittografia in-place su cache di file sola lettura
    CVE-2026-463002026XFRM ESP-in-TCPPerdita del marker di frammento condiviso skbuff
    CVE-2026-463312026net/sched act_peditCOW parziale da offset di chiave tipizzato risolto in ritardo