Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cifswitch-check — CIFSwitch - CVE-2026-46243 の検出スクリプト | Kitploit
ツール/GitHubGitHub/liamromanis101/cifswitch-check
特権昇格脆弱性スキャナーコンテナセキュリティ脆弱性分析エクスプロイトスクリプトと自動化構成監査クラウドセキュリティDevSecOps
GitHubliamromanis101/cifswitch-check

cifswitch-check

CIFSwitch - CVE-2026-46243 の検出スクリプト

2ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

cifswitch-check

LinuxシステムがCIFSwitch(CVE-2026-46243) — 2007年から存在するLinuxカーネルのCIFS/SMBクライアントにおけるローカル権限昇格の脆弱性 — にさらされているかどうかを確認するシェルスクリプト。

ベアメタルホスト、VM、コンテナ内部で動作。CI/CDパイプラインにそのまま投入できるよう設計されています。


背景

CIFSwitchは2026年5月28日にセキュリティ研究者Asim Manizadaによって公開されました。この欠陥は、カーネルのcifs.spnegoキータイプにおける入力検証の欠落と、cifs-utilsのroot権限で動作するcifs.upcallヘルパーを連鎖させます。

権限のないローカルユーザーは、偽造されたキー記述でrequest_key()を呼び出し、カーネルに攻撃者制御のフィールドでrootとしてcifs.upcallを起動させることができます。upcall_target=appを使用すると、ヘルパーは攻撃者のマウント名前空間に入り、権限をドロップする前にgetpwuid()ルックアップを実行します — 攻撃者制御のNSSモジュールをロードし、rootとして任意のコードを実行します。

悪用の前提条件:

  • 脆弱なカーネル(2007年から存在、6.18.22 / 6.19.12 / 7.0+で修正)
  • cifs-utils >= 6.14がインストールされている
  • 非特権ユーザー名前空間が有効(ほとんどのディストリビューションでデフォルト)
  • パスをブロックするSELinux/AppArmorの強制ポリシーがない

公開PoCはmanizada/CIFSwitchで入手可能です。


チェック項目


使用方法

root@kitploit:~
# Clone or download
curl -O https://raw.githubusercontent.com/liamromanis101/cifswitch-check/main/cifswitch-check.sh
chmod +x cifswitch-check.sh

# 対話的に実行(色付き出力)
./cifswitch-check.sh

# 静音モード — FAILと最終判定のみ表示
./cifswitch-check.sh --quiet

# JSON出力 — CI/CDパイプライン、SIEM取り込み用
./cifswitch-check.sh --ci

# 色なし(プレーンテキスト、ログ記録に便利)
./cifswitch-check.sh --no-colour

# このスクリプトはAgensiからSKILLとしても利用可能です:
https://www.agensi.io/skills/cve-2026-46243-cifswitch

終了コード

コード意味
0脆弱ではない、またはすべての重要な緩和策が適用されている
1脆弱 — 1つ以上のFAILチェックがある
2スクリプトエラー

出力例

対話型(人間が読める形式)

root@kitploit:~
  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)

root@kitploit:~
{
  "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統合

GitHub Actions

root@kitploit:~
- 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

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

Jenkins

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

緩和策(パッチ適用がすぐにできない場合)

1. カーネルをパッチする(ディストリビューションパッケージが利用可能になったら)

上流の修正はコミット3da1fdf4efbcで、カーネル>= 6.18.22、>= 6.19.12、>= 7.0のstableにキューイングされています。ディストリビューションのバックポートは積極的にロールアウト中です — CVE-2026-46243についてベンダーのセキュリティアドバイザリを確認してください。パッケージが利用可能になるまでは、以下の緩和策を適用してください。

2. cifs-utilsを削除する(CIFS/SMBマウントを使用しない場合、攻撃チェーン全体を断ち切る)

root@kitploit:~
apt remove cifs-utils       # Debian / Ubuntu
dnf remove cifs-utils       # RHEL / Fedora / AlmaLinux

2. 非特権ユーザー名前空間を無効にする(名前空間遷移ステップをブロック)

root@kitploit:~
# 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

⚠️ これにより、Flatpak、rootless Podman/Docker、Chrome/Chromiumのサンドボックスが機能しなくなる可能性があります。

3. cifs.spnego request-keyルールを無効にする

root@kitploit:~
sed -i 's|^create cifs.spnego|#create cifs.spnego|' /etc/request-key.d/cifs.spnego.conf

4. CIFSカーネルモジュールをブラックリストに登録する(SMBネットワークマウントを使用していない場合)

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

影響を受けるディストリビューション

悪用可能性には、cifs-utils >= 6.14がインストールされ、非特権ユーザー名前空間が有効であることが必要です。デフォルト設定で脆弱性が確認されているディストリビューションには、AlmaLinux 8/9、RHEL 8/9、CloudLinux 8/9/10、およびcifs-utilsが存在するいくつかのUbuntu/Debianリリースが含まれます。

デフォルトのSELinux/AppArmorが悪用を防ぐディストリビューション:Ubuntu 26.04、Fedora 40–44、CentOS Stream 10、Rocky Linux 10、AlmaLinux 10、SLES 16、openSUSE Leap 16。

影響なし:Amazon Linux 2、Kali Linux 2019.4/2020.4(cifs-utilsのバージョンに名前空間スイッチがない)。

RHEL/CentOS/Amazonのディストリビューションカーネルの場合、スクリプトはベンダーのアドバイザリを参照します。バックポートの状態はバージョン文字列だけでは確実に判断できないためです。


要件

  • bash >= 4.0
  • 標準のcoreutils (awk, grep, cut, find, sort)
  • ほとんどのチェックにrootは不要。カーネルシンボルチェック(FIX_SYMBOL)にはroot(またはCAP_SYSLOG)が必要

参考文献

  • Original researcher writeup — Asim Manizada
  • SecurityWeek coverage
  • BleepingComputer coverage
  • CloudLinux advisory and mitigation guide
  • AlmaLinux advisory
  • Upstream fix commit — 3da1fdf4efbc
  • NVD — CVE-2026-46243

免責事項

このスクリプトは防御目的で提供されています — 管理者が露出を評価し、修復するのを支援するためです。読み取り専用のチェックを実行し、システムに変更を加えません。PoCエクスプロイトはここに含まれておらず、リンクもされていません。それについては元の研究者のアドバイザリを参照してください。

ツールをダウンロード
チェック説明
KERNEL_VERSION実行中のカーネルを修正済みの上流バージョンと比較します(注:ディストリビューションパッケージはまだロールアウト中)
CIFS_UTILScifs-utilsのインストールと悪用可能なバージョン(>= 6.14)を検出します
CIFS_MODULECIFSカーネルモジュールがロードされているか、組み込まれているか、ブラックリストに登録されているかを確認します
USERNSkernel.unprivileged_userns_cloneまたはuser.max_user_namespacesのsysctl値を読み取ります
REQUESTKEY_RULEcifs.upcallを呼び出すアクティブなcifs.spnegoルールがあるか確認します
MAC_POLICY強制中のSELinuxまたはAppArmorを検出します(パッチ適用済みディストリビューションでは悪用をブロック)
CONTAINER_CAPSコンテナ内:CAP_SYS_ADMINがあるか確認します(無制限のusernsを有効化)
CONTAINER_PROCコンテナ内:/proc/sysへの書き込みアクセスがあるか確認します(特権コンテナ)
FIX_SYMBOLCIFSがロードされており/proc/kallsymsが読み取り可能な場合:修正コミットのシンボルが存在するか検証します