Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
cifswitch-check — Erkennungsskript für CIFSwitch - CVE-2026-46243 | Kitploit
Tools/GitHubGitHub/liamromanis101/cifswitch-check
Privilege EscalationSchwachstellenscannerContainer-SicherheitSchwachstellenanalyseExploitationScripting & AutomatisierungKonfigurationsprüfungCloud-SicherheitDevSecOps
GitHubliamromanis101/cifswitch-check

cifswitch-check

Erkennungsskript für CIFSwitch - CVE-2026-46243

7vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

cifswitch-check

Ein Shell-Skript zur Überprüfung, ob ein Linux-System CIFSwitch (CVE-2026-46243) ausgesetzt ist – eine lokale Privilegieneskalations-Schwachstelle im CIFS/SMB-Client des Linux-Kernels, die seit 2007 besteht.

Läuft auf Bare-Metal-Hosts, VMs und in Containern. Entwickelt, um direkt in CI/CD-Pipelines eingesetzt zu werden.


Hintergrund

CIFSwitch wurde am 28. Mai 2026 vom Sicherheitsforscher Asim Manizada veröffentlicht. Der Fehler verknüpft eine fehlende Eingabevalidierung im cifs.spnego-Schlüsseltyp des Kernels mit dem root-basierten cifs.upcall-Helfer aus cifs-utils.

Ein unprivilegierter lokaler Benutzer kann request_key() mit einer gefälschten Schlüsselbeschreibung aufrufen, wodurch der Kernel cifs.upcall als root mit angreifergesteuerten Feldern ausführt. Mit upcall_target=app tritt der Helfer in den Mount-Namespace des Angreifers ein und führt eine getpwuid()-Abfrage durch, bevor er die Berechtigungen herabsetzt – dabei wird ein angreifergesteuertes NSS-Modul geladen und beliebiger Code als root ausgeführt.

Voraussetzungen für die Ausnutzung:

  • Ein anfälliger Kernel (seit 2007 vorhanden, behoben in 6.18.22 / 6.19.12 / 7.0+)
  • cifs-utils >= 6.14 installiert
  • Unprivilegierte Benutzer-Namespaces aktiviert (Standard auf den meisten Distributionen)
  • Keine erzwingende SELinux/AppArmor-Richtlinie, die den Pfad blockiert

Ein öffentlicher PoC ist verfügbar unter manizada/CIFSwitch.


Was geprüft wird

PrüfungBeschreibung
KERNEL_VERSIONVergleicht den laufenden Kernel mit gepatchten Upstream-Versionen (Hinweis: Distributionspakete werden noch ausgerollt)
CIFS_UTILSErkennt die Installation von cifs-utils und ausnutzbare Version (>= 6.14)
CIFS_MODULEÜberprüft, ob das CIFS-Kernelmodul geladen, eingebaut oder blockiert ist
USERNSLiest den Sysctl-Wert kernel.unprivileged_userns_clone oder user.max_user_namespaces
REQUESTKEY_RULEÜberprüft auf eine aktive cifs.spnego-Regel, die cifs.upcall aufruft
MAC_POLICYErkennt erzwingendes SELinux oder AppArmor (blockiert Exploit auf gepatchten Distributionen)
CONTAINER_CAPSIn Containern: Überprüft auf CAP_SYS_ADMIN (ermöglicht uneingeschränkten userns)
CONTAINER_PROCIn Containern: Überprüft auf Schreibzugriff auf /proc/sys (privilegierter Container)
FIX_SYMBOLWenn CIFS geladen ist und /proc/kallsyms lesbar ist: Überprüft, ob das Symbol des Fix-Commits vorhanden ist

Verwendung

# Klonen oder herunterladen
curl -O https://raw.githubusercontent.com/liamromanis101/cifswitch-check/main/cifswitch-check.sh
chmod +x cifswitch-check.sh

# Interaktiv ausführen (farbige Ausgabe)
./cifswitch-check.sh

# Quiet-Modus – nur Fehlschläge und endgültiges Urteil
./cifswitch-check.sh --quiet

# JSON-Ausgabe – für CI/CD-Pipelines, SIEM-Integration
./cifswitch-check.sh --ci

# Keine Farbe (Klartext, nützlich für Logging)
./cifswitch-check.sh --no-colour

# Dieses Skript ist auch als SKILL von Agensi verfügbar:
https://www.agensi.io/skills/cve-2026-46243-cifswitch

Exit-Codes

CodeBedeutung
0Nicht anfällig oder alle kritischen Gegenmaßnahmen vorhanden
1Anfällig – eine oder mehrere FEHLGESCHLAGENE Prüfungen
2Skriptfehler

Beispielausgabe

Interaktiv (menschenlesbar)

  CIFSwitch Vulnerability Check  (CVE-2026-46243)
  Kernel: 6.18.5   Host: myserver   Container: false
────────────────────────────────────────────────────────────────────────
[FAIL] KERNEL_VERSION         Kernel 6.18.5 appears unpatched. Fixed in: >= 6.18.22, >= 6.19.12, >= 7.0. Update your kernel.
[PASS] CIFS_UTILS             cifs-utils NOT installed — cifs.upcall helper absent, attack chain is broken
[PASS] CIFS_MODULE            CIFS kernel module not present on this system
[FAIL] USERNS                 user.max_user_namespaces = 15980 (non-zero). Disable to block namespace step:
[PASS] REQUESTKEY_RULE        No cifs.spnego request-key rule found — rootful cifs.upcall will not be invoked
[WARN] MAC_POLICY             No enforcing MAC policy (SELinux/AppArmor) detected
[ -- ] FIX_SYMBOL             CIFS module not loaded — symbol check skipped
────────────────────────────────────────────────────────────────────────

  VERDICT: VULNERABLE — remediation required
  Reference: https://heyitsas.im/posts/cifswitch/

JSON (--ci)

{
  "scanner": "cifswitch-check",
  "cve": "CVE-2026-46243",
  "timestamp": "2026-06-03T00:10:08Z",
  "hostname": "myserver",
  "kernel": "6.18.5",
  "in_container": false,
  "overall": "FAIL",
  "checks": [
    {"check": "KERNEL_VERSION", "status": "FAIL", "detail": "Kernel 6.18.5 appears unpatched. Fixed in: >= 6.18.22, >= 6.19.12, >= 7.0. Update your kernel."},
    {"check": "CIFS_UTILS",     "status": "PASS", "detail": "cifs-utils NOT installed — cifs.upcall helper absent, attack chain is broken"},
    {"check": "CIFS_MODULE",    "status": "PASS", "detail": "CIFS kernel module not present on this system"},
    {"check": "USERNS",         "status": "FAIL", "detail": "user.max_user_namespaces = 15980 (non-zero). Disable to block namespace step:"},
    {"check": "REQUESTKEY_RULE","status": "PASS", "detail": "No cifs.spnego request-key rule found — rootful cifs.upcall will not be invoked"},
    {"check": "MAC_POLICY",     "status": "WARN", "detail": "No enforcing MAC policy (SELinux/AppArmor) detected"},
    {"check": "FIX_SYMBOL",     "status": "INFO", "detail": "CIFS module not loaded — symbol check skipped"}
  ]
}

CI/CD-Integration

GitHub Actions

- name: CIFSwitch vulnerability check
  run: |
    chmod +x ./cifswitch-check.sh
    ./cifswitch-check.sh --ci | tee cifswitch-result.json
  # Exit code 1 will fail the step if the runner is vulnerable

GitLab CI

cifswitch-check:
  stage: security
  script:
    - chmod +x cifswitch-check.sh
    - ./cifswitch-check.sh --ci > cifswitch-result.json
  artifacts:
    paths:
      - cifswitch-result.json

Jenkins

stage('CIFSwitch Check') {
    steps {
        sh 'chmod +x cifswitch-check.sh && ./cifswitch-check.sh --ci > cifswitch-result.json'
        archiveArtifacts artifacts: 'cifswitch-result.json'
    }
}

Gegenmaßnahmen (falls Patchen nicht sofort möglich ist)

1. Patchen Sie Ihren Kernel (sobald Ihr Distributionspaket verfügbar ist)

Der Upstream-Fix ist der Commit 3da1fdf4efbc, der für stabile Kernel >= 6.18.22, >= 6.19.12 und >= 7.0 eingereiht wurde. Distributions-Backports werden aktiv ausgerollt – prüfen Sie die Sicherheitshinweise Ihres Anbieters zu CVE-2026-46243. Bis ein Paket verfügbar ist, wenden Sie die folgenden Gegenmaßnahmen an.

2. Entfernen Sie cifs-utils (unterbricht die Angriffskette vollständig, wenn Sie keine CIFS/SMB-Mounts verwenden)

apt remove cifs-utils       # Debian / Ubuntu
dnf remove cifs-utils       # RHEL / Fedora / AlmaLinux

2. Deaktivieren Sie unprivilegierte Benutzer-Namespaces (blockiert den Namespace-Pivot-Schritt)

# Debian / Ubuntu
sysctl -w kernel.unprivileged_userns_clone=0
echo 'kernel.unprivileged_userns_clone=0' >> /etc/sysctl.d/99-cifswitch.conf

# RHEL / Fedora / upstream
sysctl -w user.max_user_namespaces=0

⚠️ Dies kann Flatpak, rootless Podman/Docker und die Sandboxing-Funktionen von Chrome/Chromium beeinträchtigen.

3. Deaktivieren Sie die cifs.spnego request-key-Regel

sed -i 's|^create cifs.spnego|#create cifs.spnego|' /etc/request-key.d/cifs.spnego.conf

4. Blockieren Sie das CIFS-Kernelmodul (falls keine SMB-Netzwerk-Mounts verwendet werden)

echo 'blacklist cifs' >> /etc/modprobe.d/blacklist-cifs.conf
rmmod cifs 2>/dev/null || true
depmod -a

Betroffene Distributionen

Tool herunterladen