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
check-cve-2026-23111 — Script per verificare se i sistemi sono vulnerabili a cve-2026-23111 | Kitploit
Strumenti/GitHubGitHub/criann/check-cve-2026-23111
Escalation di PrivilegiScanner di VulnerabilitàAnalisi delle VulnerabilitàAudit di ConfigurazioneThreat IntelligenceApprendimento e FormazioneRisposta agli Incidenti
GitHubcriann/check-cve-2026-23111

check-cve-2026-23111

Script per verificare se i sistemi sono vulnerabili a cve-2026-23111

Vedi Repository
3 mesi 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

Script di validazione difensiva CVE-2026-23111

Panoramica

CVE-2026-23111 è una vulnerabilità del kernel Linux in nf_tables che può essere sfruttata per l'escalation locale dei privilegi da parte di un utente non privilegiato su sistemi in cui gli user namespace e nftables sono disponibili.[1][2] I bollettini pubblici dei vendor e governativi la descrivono come un problema locale che interessa le distribuzioni Linux e sottolineano l'applicazione delle patch come soluzione primaria.[3][4]

Questo repository contiene uno script di validazione difensiva progettato per aiutare a valutare se un host espone le condizioni tecniche associate a questa CVE senza fornire un exploit per l'escalation dei privilegi. Verifica le condizioni rilevanti del kernel e del runtime, carica opzionalmente il modulo nf_tables per test funzionali completi, tenta un percorso di validazione controllato non privilegiato usando unshare e nft, raccoglie tracce diagnostiche locali e classifica l'host in verdetti operativi come "probabilmente sicuro", "bloccato da policy locale" o "percorso esposto disponibile".[1][5]

Cos'è la CVE

Secondo l'NVD, CVE-2026-23111 è una vulnerabilità del kernel Linux risolta come correzione di un bug logico in netfilter ed è sfruttabile per l'escalation locale dei privilegi da parte di un utente non privilegiato tramite user namespace e nftables sulle configurazioni interessate.[1] L'avviso di sicurezza di Ubuntu descrive lo stesso percorso di sfruttamento ad alto livello e traccia gli stati dei pacchetti interessati e corretti per release.[2]

nf_tables

Red Hat dichiara che un utente locale con privilegi bassi potrebbe sfruttare il problema per causare denial of service o potenzialmente ottenere l'escalation dei privilegi, e documenta un percorso di mitigazione basato sull'impedire il caricamento del modulo nf_tables quando ciò è operativamente accettabile.[3] Anche le linee guida a livello nazionale del Canadian Centre for Cyber Security indirizzano le organizzazioni colpite agli aggiornamenti dei vendor e menzionano la rigenerazione dell'initramfs quando vengono utilizzate mitigazioni di blocco dei moduli.[4]

Cosa fa lo script

Lo script è pensato per la valutazione difensiva dell'esposizione, non per lo sfruttamento. È progettato per:

  • Identificare il kernel in esecuzione, la famiglia di distribuzione e le relative impostazioni di hardening del runtime.
  • Verificare se CONFIG_USER_NS e CONFIG_NF_TABLES risultano presenti.[1]
  • Ispezionare kernel.unprivileged_userns_clone e user.max_user_namespaces per stimare se gli user namespace non privilegiati sono disponibili.
  • Rilevare se è in atto un deny modprobe rigido (install nf_tables /bin/false) o una blacklist debole per il modulo nf_tables.
  • Controllare il changelog RPM del kernel del vendor per una voce di backport di CVE-2026-23111 (solo famiglia RHEL).
  • Rilevare l'impronta di /proc/kallsyms per il simbolo vulnerabile (nft_map_catchall_activate) rispetto al simbolo post-patch (nft_catchall_set_activate) prima di qualsiasi interazione con il modulo.
  • Caricare opzionalmente nf_tables tramite modprobe quando viene specificato --allow-load-module (vedi sotto) e scaricarlo automaticamente all'uscita.
  • Eseguire un passaggio di validazione vincolato unshare -U -n --map-root-user + nft quando il modulo è caricato, e registrare stdout, stderr e i log recenti del kernel.
  • Verificare che unshare --user crei effettivamente un namespace e che CAP_NET_ADMIN sia funzionante al suo interno, per confermare se le restrizioni AppArmor o SELinux sono realmente efficaci.
  • Evidenziare se i controlli di sicurezza locali come AppArmor o SELinux sembrano bloccare il percorso testato.[6]
  • Produrre un output orientato ai verdetti con evidenziazione opzionale a colori per un triage più semplice.

Lo script salva i log in una sottodirectory della directory dello script e li rimuove per impostazione predefinita a meno che non venga usato --keep-logs.

Policy di caricamento del modulo

Per impostazione predefinita lo script non carica mai nf_tables. Se il modulo non è già caricato all'avvio dello script, tutti i test funzionali nft vengono saltati e il verdetto deriva esclusivamente dalla versione del kernel, dall'impronta kallsyms, dalla configurazione di modprobe, dal changelog RPM e dalle evidenze di policy sysctl/LSM.

Questa impostazione predefinita conservativa evita di espandere involontariamente la superficie d'attacco sugli host di produzione. Per abilitare test funzionali completi su un sistema controllato o strumentato, usa --allow-load-module come root (vedi sotto).

Utilizzo

root@kitploit:~
# Default — no module loading, policy-evidence-only verdict
./check_cve_2026_23111.sh
./check_cve_2026_23111.sh --color
./check_cve_2026_23111.sh --keep-logs
./check_cve_2026_23111.sh --color --keep-logs

# Full functional test — loads (and unloads) nf_tables, requires root
sudo ./check_cve_2026_23111.sh --allow-load-module
sudo ./check_cve_2026_23111.sh --allow-load-module --color --keep-logs

Opzioni

OpzioneDescrizione
--allow-load-moduleAutorizza lo script a caricare nf_tables tramite modprobe se il modulo non è già caricato. Abilita l'esercitatore completo del percorso catchall nft e il test di efficacia di CAP_NET_ADMIN. Il modulo viene scaricato automaticamente all'uscita. Richiede root. Rifiutato se è già in atto un deny modprobe rigido. Utilizzare solo su sistemi non di produzione o strumentati.
--colorAbilita l'output stdout colorato quando il terminale lo supporta.
--keep-logsMantiene i log e le tracce nella directory dello script invece di eliminarli all'uscita.
--helpStampa le informazioni di utilizzo ed esce.

Quando usare --allow-load-module

Usa --allow-load-module quando hai bisogno del verdetto con la massima affidabilità su una VM di test isolata, non di produzione o dedicata. Scenari tipici:

  • Un kernel nell'intervallo vulnerabile viene validato prima di implementare la correzione del vendor.
  • Il sistema di test ha KASAN o altra strumentazione abilitata e vuoi osservare le tracce del kernel.
  • Il modulo non è in uso sull'host target e per le evidenze di audit è richiesto un controllo completo end-to-end del percorso.

Non usare --allow-load-module su host di produzione in cui nf_tables è bloccato intenzionalmente o dove il suo caricamento violerebbe una policy di hardening.

Controlli di sicurezza per --allow-load-module

Prima di tentare di caricare il modulo, lo script applica i seguenti controlli ed esce con un errore se uno di essi fallisce:

  1. Un deny modprobe rigido (install nf_tables /bin/false) non deve essere presente in /etc/modprobe.d/.
  2. modprobe deve essere disponibile sul sistema.
  3. Lo script deve essere eseguito come root (uid 0).

Se il modulo viene caricato con successo dallo script, modprobe -r nf_tables viene chiamato all'uscita tramite il trap cleanup(), indipendentemente da come termina lo script (successo, errore o CTRL+C).

Modello di verdetto

Lo script usa verdetti operativi piuttosto che esiti di sfruttamento:

VerdettoSignificato
not-affectedLa versione del kernel è inferiore alla 5.13; la funzionalità degli elementi catchall non era ancora stata introdotta e il percorso di codice vulnerabile è assente.
likely-patched-vendor-confirmedCVE-2026-23111 è stata trovata nel changelog RPM del kernel del vendor, confermando una correzione backportata indipendentemente dalla versione upstream.
likely-patched-upstream-confirmedLa versione del kernel è nell'intervallo upstream corretto e il test funzionale nft ha restituito un valore non zero senza segnali dal kernel — la più forte evidenza statica e dinamica di uno stato sicuro.
likely-patched-upstreamLa versione del kernel è in un intervallo upstream corretto ma il test funzionale non è stato eseguito (modulo assente o non conclusivo). Lo stato del bollettino del vendor dovrebbe comunque essere verificato.
likely-safe-or-patchedNessun percorso sfruttabile è stato confermato dallo script; la causa è ambigua tra un kernel corretto, codice vulnerabile assente o un blocco locale implicito.
blocked-by-local-policyIl percorso testato risulta bloccato da AppArmor, SELinux, restrizioni sugli user namespace o un deny modprobe.[6] I blocchi di policy non sostituiscono la correzione del vendor.
exposed-path-availableL'host espone un percorso userns + nftables compatibile con i prerequisiti di sfruttamento documentati.[1][5]
strong-signal-lab-confirmationÈ stato osservato un segnale nei log del kernel coerente con una corruzione di memoria correlata a nf_tables. Confermare solo in un lab strumentato e monouso.
prerequisites-missingMancano gli strumenti diagnostici richiesti (unshare, nft); nessuna validazione runtime significativa è stata completata.

Questi verdetti sono pensati per supportare la prioritizzazione delle patch e il triage difensivo, non per sostituire la validazione dello stato dei pacchetti del vendor.

Copertura delle versioni del kernel

Lo script mappa il kernel in esecuzione rispetto ai punti di correzione upstream documentati:

RamoCorretto inCommit upstream
6.13.x+≥ 6.13.1f41c5d1
6.12.x≥ 6.12.128c760ba
6.6.x≥ 6.6.75b9b6573
6.1.x≥ 6.1.1288b68a45
6.2–6.5, 6.7–6.11EOL upstreamsolo backport della distro
5.15.xdipende dalla distroAmazon Linux: ALAS2KERNEL-5.15-2026-098
5.10.xdipende dalla distroAmazon Linux 2: in attesa al 2026-03
5.4.xdipende dalla distroAmazon Linux 2: in attesa al 2026-03
5.13–5.14EOL upstreamsolo backport della distro
< 5.13non interessatofunzionalità catchall non presente

Mitigazione consigliata

L'azione principale consigliata è installare l'aggiornamento del kernel corretto dal vendor e riavviare con il kernel corretto.[2][3][4] Poiché lo sfruttamento dipende dalla superficie d'attacco locale del kernel, un hardening aggiuntivo può ridurre l'esposizione mentre si pianifica o si valuta l'applicazione delle patch.[5][6]

Azioni prioritarie

  1. Applicare la patch al kernel utilizzando il bollettino ufficiale della distribuzione e riavviare con la versione corretta.[2][3][4]
  2. Limitare gli user namespace non privilegiati dove i requisiti aziendali lo consentono, perché il percorso d'attacco documentato dipende dalla loro disponibilità per gli utenti non privilegiati.[1][5][6]
  3. Disabilitare o bloccare il caricamento di nf_tables se il sistema non richiede la funzionalità nftables e la modifica è stata validata per l'impatto operativo.[3][4]
  4. Limitare le capability di rete privilegiate come i percorsi di accesso che coinvolgono CAP_NET_ADMIN e ridurre il numero di account che possono manipolare lo stato del firewall.[5]

Esempi di passaggi di hardening

Limitare gli user namespace non privilegiati:

root@kitploit:~
echo 'kernel.unprivileged_userns_clone=0' > /etc/sysctl.d/99-cve-2026-23111.conf
echo 'user.max_user_namespaces=0' >> /etc/sysctl.d/99-cve-2026-23111.conf
sysctl --load /etc/sysctl.d/99-cve-2026-23111.conf

Bloccare il caricamento del modulo nf_tables quando è operativamente sicuro:

root@kitploit:~
echo 'install nf_tables /bin/false' > /etc/modprobe.d/disable-nf_tables.conf
rmmod nf_tables 2>/dev/null || true

Se viene utilizzata una mitigazione sul caricamento dei moduli, alcune linee guida raccomandano di rigenerare l'initramfs affinché il modulo bloccato non venga caricato durante l'avvio iniziale.[4]

Nota specifica per Ubuntu

Ubuntu documenta le restrizioni basate su AppArmor per gli user namespace non privilegiati come un modo per ridurre la superficie d'attacco piuttosto che come un sostituto completo delle correzioni del kernel.[6] Un host può apparire meno esposto nei test runtime perché il percorso d'attacco è bloccato localmente, mentre la remediation a lungo termine richiede comunque l'installazione del pacchetto kernel corretto dal vendor.[2][6] Lo script valida l'efficacia delle restrizioni AppArmor tentando un'invocazione reale di unshare --user e verificando se CAP_NET_ADMIN all'interno di un namespace user+net è funzionante.

Nota specifica per Red Hat

Red Hat elenca esplicitamente l'impedimento del caricamento del modulo nf_tables come mitigazione per CVE-2026-23111 quando tale modifica è appropriata per l'ambiente.[3] Lo script rileva questa configurazione tramite check_modprobe_deny() e distingue tra un deny rigido (install nf_tables /bin/false, che blocca il caricamento on-demand) e una blacklist debole (che non lo blocca). Sui sistemi della famiglia RHEL lo script ispeziona anche il changelog RPM del kernel in esecuzione per una voce di backport di CVE-2026-23111, consentendo un verdetto confermato dal vendor indipendente dal numero di versione upstream.

Riferimenti ufficiali

  • NVD: Dettagli CVE-2026-23111 [1]
  • Sicurezza Ubuntu: CVE-2026-23111 [2]
  • Sicurezza Red Hat: CVE-2026-23111 [3]
  • Bollettino del Canadian Centre for Cyber Security: AL26-011 [4]
  • Panoramica sulle restrizioni degli user namespace di Ubuntu AppArmor: Understanding AppArmor User Namespace Restriction [6]

Ambito e sicurezza

Questo README e lo script associato sono pensati per la validazione difensiva, l'inventario e la pianificazione delle mitigazioni. Non sostituiscono le indicazioni del vendor, la verifica a livello di pacchetti o i processi standard di gestione delle patch, e non dovrebbero essere usati come sostituto dell'applicazione delle correzioni ufficiali descritte nei bollettini collegati.[2][3][4]


📚 Repository educativo di ricerca sulla sicurezza

Un repository per apprendere, testare e ricercare concetti di cybersecurity in ambienti controllati.


⚠️ Disclaimer di sicurezza e legale

Scopo

Questo repository è solo per ricerca sulla sicurezza educativa e autorizzata.

È progettato per aiutare gli utenti a conoscere:

  • Vulnerabilità di sicurezza
  • Concetti di sandbox e isolamento
  • Pratiche di codifica sicura e difensive

Solo uso autorizzato

Usa questo repository solo in ambienti in cui hai il permesso, come:

  • Lab personali o macchine virtuali
  • Ambienti Docker o isolati
  • Test di penetrazione autorizzati
  • Formazione sulla cybersecurity o ricerca accademica

L'uso non autorizzato o illegale è severamente vietato.


Nessuna responsabilità

L'autore e i contributori non sono responsabili per qualsiasi danno, uso improprio, problema legale o perdita causati da questo progetto.

Usando questo repository, accetti che:

  • Sei responsabile delle tue azioni
  • Lo userai in modo legale ed etico
  • Il progetto è fornito senza garanzia

Uso etico

Questo progetto è pensato per:

  • Ricerca sulla sicurezza difensiva
  • Formazione sulla cybersecurity
  • Consapevolezza delle vulnerabilità
  • Ricerca su sistemi e software sicuri

Segui le pratiche di responsible disclosure e rispetta tutte le leggi applicabili.


Contatti

Per responsible disclosure o collaborazione, contatta il maintainer del repository tramite GitHub.

Scarica lo strumento