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-31431-mitigation — Mitigazione basata su Seccomp per CVE-2026-31431, una LPE del kernel Linux. Blocca il socket AF_ALG tramite modulo PAM e wrapper autonomo, con rilevamento automatico dei kernel patchati. | Kitploit
Strumenti/GitHubGitHub/linux-zs/cve-2026-31431-mitigation
Strumenti DifensiviAnalisi delle VulnerabilitàAudit di ConfigurazioneVirtualizzazione per la Sicurezza
GitHublinux-zs/cve-2026-31431-mitigation

cve-2026-31431-mitigation

Mitigazione basata su Seccomp per CVE-2026-31431, una LPE del kernel Linux. Blocca il socket AF_ALG tramite modulo PAM e wrapper autonomo, con rilevamento automatico dei kernel patchati.

Vedi Repository

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 →
3 mesi faNon ancora revisionato
Condividi

Mitigazione seccomp per CVE-2026-31431

Una mitigazione leggera e reversibile basata su seccomp per CVE-2026-31431, una vulnerabilità di escalation dei privilegi locale nel sottosistema crittografico algif_aead / authencesn del kernel Linux.

中文文档


Panoramica della Vulnerabilità

Tipo: Escalation dei Privilegi Locale (LPE)

Componente Interessato: crypto/algif_aead.c del kernel Linux - operazione AEAD in-place

Primitiva di Attacco: Una scrittura controllabile di 4 byte nella cache delle pagine di qualsiasi file leggibile tramite il percorso di scrittura scratch dell'algoritmo AEAD authencesn. Prendendo di mira /etc/passwd, un attaccante può cambiare il proprio UID in 0 (root) e ottenere una shell root tramite su.

Kernel Interessati: Confermato sui kernel 6.12+, 6.17+, 6.18+, e riprodotto anche sui kernel RHEL/CentOS 4.18/5.14.

Ambienti Verificati: Rocky Linux 8 (kernel 4.18) e Rocky Linux 9 (kernel 5.14) - exploit completamente bloccato, rimozione sicura confermata.

Causa Principale: Il commit 72548b093ee3 ha introdotto l'operazione AEAD in-place. Quando le pagine della cache di file spliced vengono usate come scatterlist di destinazione, il campo AAD seqno_lo viene scritto erroneamente nella cache delle pagine durante la decrittazione AEAD.

Fix a Monte: Ripristino dell'operazione AEAD out-of-place.

Come Funziona Questa Mitigazione

Questa soluzione ha due componenti:

  1. Modulo PAM (pam_block_afalg.so) - La difesa principale. Caricato da PAM durante l'apertura della sessione (pam_sm_open_session), applica un filtro seccomp BPF che blocca socket(AF_ALG, ...) prima che venga eseguito qualsiasi codice utente. Copre TUTTE le sessioni autenticate PAM: su -c, su -, SSH, login TTY, ecc.

  2. Binario standalone (block_afalg) - Opzionale. Può avvolgere programmi specifici per scenari non-PAM (es. job cron, servizi systemd, invocazione manuale).

Il filtro seccomp:

  • Blocca solo socket(AF_ALG, ...) (restituisce EACCES)
  • Impatto zero su tutte le altre syscall (incluse setuid, su, sudo)
  • Viene ereditato da tutti i processi figli (fork + exec)
  • Rileva automaticamente i kernel patchati e diventa un no-op

Architettura

root@kitploit:~
Apertura sessione PAM (su, ssh, login, ecc.)
  |
  v
pam_block_afalg.so (pam_sm_open_session)
  |
  +-- Controllo: il kernel è vulnerabile? (prova socket(AF_ALG))
  |     |
  |     +-- No  --> restituisci PAM_SUCCESS (no-op)
  |     |
  |     +-- Sì --> prctl(PR_SET_SECCOMP, filtro BPF)
  |                   |
  |                   +-- filtro seccomp attivo sul processo figlio di sshd
  |                   +-- ereditato dalla shell dell'utente e da TUTTI i processi figli
  |                   +-- socket(AF_ALG, ...) restituisce EACCES
  v
La shell / il comando dell'utente viene eseguito con protezione seccomp
  |
  +-- su, sudo e tutte le altre syscall funzionano normalmente
  +-- Solo il socket AF_ALG è bloccato

File

FileScopo
pam_block_afalg.cSorgente del modulo PAM. Applica il filtro seccomp all'apertura della sessione.
pam_minimal.hDefinizioni minime dei tipi PAM (compila senza pam-devel).
block_afalg.cBinario wrapper seccomp standalone. Per uso non-PAM.
deploy.shScript di distribuzione. Compila, installa e gestisce il modulo PAM.

Requisiti

  • Kernel Linux con supporto seccomp (la maggior parte dei kernel moderni)
  • gcc (per la compilazione)
  • libpam (runtime, solitamente preinstallato)
  • Accesso root/sudo (per l'installazione)
  • Architettura x86_64 (il filtro BPF usa i numeri di syscall x86_64)

Avvio Rapido

root@kitploit:~
# 1. Compila il modulo PAM
gcc -Wall -O2 -fPIC -shared -o pam_block_afalg.so pam_block_afalg.c \
    /usr/lib64/libpam.so.0

# 2. Installa (aggiunge automaticamente le configurazioni PAM a su, sshd, login)
sudo ./deploy.sh install

# 3. Verifica (deve essere una NUOVA sessione)
cat /proc/self/status | grep Seccomp
# Dovrebbe mostrare: Seccomp: 2

python3 -c "
import socket
try:
    s = socket.socket(38,2,0); s.close()
    print('VULNERABILE')
except OSError:
    print('BLOCCATO')
"
# Dovrebbe mostrare: BLOCCATO

# 4. Disinstalla
sudo ./deploy.sh remove

Riferimento Comandi

ComandoDescrizione
deploy.sh installCompila il modulo PAM, lo installa in /lib64/security/, aggiunge automaticamente le configurazioni PAM
deploy.sh removeDisinstallazione completa: rimuove il modulo, pulisce le configurazioni PAM, elimina i file
deploy.sh statusMostra lo stato dell'installazione, le configurazioni PAM, lo stato del kernel

Utilizzo Standalone

Per scenari non-PAM, usa block_afalg direttamente:

root@kitploit:~
# Compila
gcc -Wall -O2 -o block_afalg block_afalg.c

# Esegui un comando con AF_ALG bloccato
./block_afalg python3 tuo_script.py
./block_afalg bash

Verifica

Controlla se il kernel è vulnerabile

root@kitploit:~
python3 -c "
import socket
try:
    s = socket.socket(38, socket.SOCK_SEQPACKET, 0)
    s.close()
    print('VULNERABILE: socket AF_ALG disponibile')
except:
    print('SICURO: socket AF_ALG bloccato o non disponibile')
"

Verifica che il modulo PAM sia attivo

root@kitploit:~
# Controlla lo stato seccomp
cat /proc/self/status | grep Seccomp
# Seccomp: 0 = non protetto
# Seccomp: 2 = protetto

# Test del socket AF_ALG
python3 -c "
import socket
try:
    s = socket.socket(38,2,0)
    s.close()
    print('AF_ALG disponibile - NON protetto')
except OSError:
    print('AF_ALG bloccato - PROTETTO')
"

# Controlla i log PAM
grep pam_block_afalg /var/log/secure
# Dovrebbe mostrare: filtro seccomp applicato, AF_ALG bloccato

Limitazioni

  • Solo x86_64: Il filtro BPF codifica il numero di syscall 41 (__NR_socket su x86_64). Altre architetture richiedono l'aggiornamento del numero di syscall.
  • Dipende da PAM: Protegge solo le sessioni che passano attraverso PAM. Le chiamate exec() dirette senza PAM non sono coperte (usa block_afalg per quelle).
  • Nessuna disattivazione a runtime: Una volta applicato il filtro seccomp a un processo, non può essere rimosso. Il controllo del kernel garantisce che venga applicato solo quando necessario.
  • Solo nuove sessioni: Le sessioni esistenti avviate prima dell'installazione del modulo non vengono protette retroattivamente.

Quando Rimuovere

  1. Patch ufficiale del kernel applicata - Il modulo PAM lo rileva automaticamente, ma puoi comunque fare pulizia con remove.
  2. RHEL/CentOS rilascia un kernel patchato - yum update kernel e poi rimuovi il modulo.

Licenza

Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi difensivi. Usalo solo su sistemi di tua proprietà o per i quali sei esplicitamente autorizzato a valutare.

Scarica lo strumento