LinuxのVPN『strongSwan』が落とされる欠陥 CVE-2026-47895
LinuxのIPsec VPNで広く使われるstrongSwanに、接続の受付段階でサービスを止められる欠陥CVE-2026-47895が見つかりました。危険度は10点満点の7.5。対象は4.3.3から6.0.6までで、修正版6.0.7は2026年6月8日に公開済みです。EAPもXAuthも使っていない構成は影響を受けません。攻撃は確認されていません。
目次
LinuxのIPsec VPNで広く使われるstrongSwanに、接続の受付段階でサービスを止められる欠陥CVE-2026-47895が見つかりました。危険度は10点満点の7.5。対象は4.3.3から6.0.6までで、修正版6.0.7は2026年6月8日に公開済みです。EAPもXAuthも使っていない構成は影響を受けません。攻撃は確認されていません。
LinuxのVPNサーバーとして広く使われているstrongSwan(ストロングスワン)に、外部から接続を試みるだけでVPNサービスを停止させられる欠陥が見つかりました。管理番号はCVE-2026-47895、危険度は10点満点の7.5です。開発元は「条件次第では遠隔からの命令実行にもつながりうる」としています。
ただし、日付を先に確認してください。修正版のstrongSwan 6.0.7は2026年6月8日に公開済みで、UbuntuやDebianの更新パッケージも同じ日に出ています。今日この番号が検索され始めたのは、米国立標準技術研究所の脆弱性データベース(NVD)への登録が2026年8月22日にずれ込んだためです。6月以降にサーバーの更新を当てているなら、この穴はすでに塞がっています。
この記事の要点
- 対象はstrongSwan 4.3.3から6.0.6まで。17年分のすべてのバージョンが該当します
- 修正は6.0.7(2026年6月8日)。UbuntuやDebianは自分の版に修正だけを取り込んだ更新パッケージを配っています
- 危ないのは「EAP」または「XAuth」で利用者名とパスワードを受け付けている設定だけです。証明書だけで認証している構成は影響を受けません
- 攻撃が行われたという報告はありません。実証コードの公開も確認されていません
- 日本のJVN(脆弱性対策情報データベース)には本稿執筆時点で掲載がありません
strongSwanとは何か
strongSwanは、Linuxで「IPsec(アイピーセック)」という方式のVPNを動かすための無償ソフトです。VPNは、社外から社内のネットワークへ暗号化した通路をつくって入るための仕組み、IPsecはその通路のつくり方を決めた国際規格を指します。
専用のVPN機器を買わずに、Linuxサーバー1台でVPNの受け口を立てたいときの定番です。UbuntuでもDebianでもRed Hat系でも、標準のパッケージ一覧に最初から入っています。用途としては次のような形をよく見ます。
- 社員が自宅や外出先からスマートフォン・パソコンでつなぐ、いわゆるリモートアクセス用のVPNサーバー
- 本社と支社、あるいは自社サーバーとAWSやAzureのクラウド環境を、専用線のように結ぶ拠点間VPN
- ネットワーク機器メーカーが自社製品の中身に組み込んで使っているケース
今回問題になったのは、strongSwanの中核部品であるlibstrongswanという共通処理の部分です。ここはVPNの本体だけでなく周辺の道具からも呼ばれるため、影響の範囲を「どの機能を使っているか」で切り分ける必要があります。
何が起きるのか
CVE-2026-47895: 利用者名の複製に失敗して同じメモリーを2回返す
| 項目 | 内容 |
|---|---|
| 脆弱性番号 | CVE-2026-47895 |
| 危険度 | CVSS v3.1: 7.5(重要) CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 問題の種類 | 二重解放(CWE-415) |
| 起きること | VPNの常駐プログラムが停止 開発元は命令実行の可能性にも言及 |
| 成立の条件 | EAPまたはXAuthで 利用者名を受け付けている設定 |
| 公表日 | 2026年6月8日(開発元) 2026年8月22日(NVD登録) |
| 報告者 | R. Elliott Childre 氏 |
| 直し方 | 6.0.7以降、または 各配布元の更新パッケージ |
欠陥の種類は「二重解放」(CWE-415、ダブルフリー)です。使い終わったメモリー領域を返却する処理が二回走ってしまう、という古典的な型を指します。二回目の返却が起きた時点でプログラムは異常終了しますが、返却済みの領域を攻撃者側の狙った内容で埋められると、その内容が命令として動く余地が生まれます。2026年4月にWindowsのVPN機能で見つかった欠陥も同じ二重解放でした。
strongSwanでの経路はこうです。VPNは接続の最初に、相手が誰であるかを表す「識別子」を受け取ります。開発元の説明によれば、この識別子を複製する処理が、中身が空なのに「空ではない」と記録されている識別子を正しく扱えません。複製元と複製先が同じメモリー領域を指したまま残り、両方が片付けられるときに同じ場所を二回返すことになります。
問題は、この空の識別子を外から送り込めてしまう点です。EAPは利用者名とパスワードで認証するときの手順で、strongSwanはEAPで送られてきた利用者名を、まだ本人確認が終わっていない段階で識別子として解釈します。ここで16進数表記を意味する記号(@# など)だけを送ると、中身が空の識別子ができあがります。認証が失敗して接続が破棄されるときに二重解放が起き、VPNの常駐プログラム(charon)が落ちます。パスワードを知らない相手でも到達できる、というのがこの欠陥の重さです。
なお、NVDが載せている評価値(CVSS 7.5)は「ある程度の権限が必要」という前提で計算されています。開発元の記述は認証前に到達しうるという内容で、両者は一致していません。数字の内訳ではなく、次の節の構成の条件で自社が該当するかを判断してください。
影響を受ける構成、受けない構成
開発元とDebianの告知は、影響しない条件をかなり細かく挙げています。証明書だけで認証している一般的な拠点間VPNは、この欠陥の影響を受けません。
| 構成 | 影響 | 補足 |
|---|---|---|
| EAPで利用者名を 自分で受け付けている | 受ける | 認証前の相手から到達可能 |
| EAPの認証を RADIUSサーバーに任せている | 原則受けない | strongSwan自身が利用者名を 尋ねない構成に限る |
| 同上で Class / Filter-Id を グループ名として解釈 | 受ける | eap-radiusプラグインの 設定次第 |
| IKEv1のXAuth | 原則受けない | 複製は認証成功後のため |
| 同上で xauth-eap を使用 | 受ける | 利用者名を即座に複製する |
| 証明書だけで認証 | 受けない | EAPもXAuthも使わない構成 |
| 設定ファイルに @# 形式の識別子を記載 | 受ける | 外部からの攻撃ではなく 自分の設定で落ちる |
つまり、危ないのは「社員がIDとパスワードでつないでくる形のVPNサーバーを、strongSwanで自前運用している」ケースです。インターネットに面してUDPの500番・4500番を開けているサーバーであれば、相手はパスワードを知らなくても接続の入口までは来られます。
逆に、AWSやAzureとの拠点間VPNをstrongSwanで組んでいる構成は、認証が証明書か事前共有鍵だけであることがほとんどで、この欠陥の対象外です。設定ファイル(swanctl.conf または ipsec.conf)でeapという文字列を検索するのが、いちばん早い切り分けになります。
strongSwanのバージョン確認と、直ったバージョン
動いているバージョンは次のコマンドで確認できます。
ipsec version
swanctl --version
dpkg -l strongswan(Ubuntu・Debian)
rpm -q strongswan(Red Hat系・Fedora)
ここに落とし穴があります。UbuntuやDebianは、自分たちが採用したバージョンを上げずに修正部分だけを取り込む方式(バックポート)を取ります。そのため ipsec version の表示は 5.9.13 のまま変わりません。判断材料になるのは、末尾のパッケージ番号を含めた表記のほうです。dpkg -l や rpm -q で出る番号を下の表と照合してください。
| 環境 | 影響するバージョン | 直ったバージョン |
|---|---|---|
| strongSwan本家 | 4.3.3 〜 6.0.6 | 6.0.7(2026年6月8日) |
| Ubuntu 26.04 LTS | 6.0.4-1ubuntu3 以前 | 6.0.4-1ubuntu3.1 |
| Ubuntu 25.10 | 6.0.1-6ubuntu4.3 以前 | 6.0.1-6ubuntu4.4 |
| Ubuntu 24.04 LTS | 5.9.13-2ubuntu4.24.04.3 以前 | 5.9.13-2ubuntu4.24.04.4 |
| Ubuntu 22.04 LTS | 5.9.5-2ubuntu2.6 以前 | 5.9.5-2ubuntu2.7 |
| Ubuntu 20.04 LTS 以前 | 調査中 | 未提供 |
| Debian 13(trixie) | 6.0.1-6+deb13u5 以前 | 6.0.1-6+deb13u6 |
| Debian 12(bookworm) | 5.9.8-5+deb12u4 以前 | 5.9.8-5+deb12u5 |
| Debian 11(bullseye) | 5.9.1-1+deb11u6 まで すべて該当 | 未提供 |
| Fedora 44 | 6.0.6 以前 | 6.0.7 |
| openSUSE Tumbleweed | 6.0.6 以前 | 6.0.7-1.1 |
Ubuntuの告知はUSN-8407-1、Debianの告知はDSA-6330-1です。危険度の格付けはUbuntuが「中」、Debianは通常のセキュリティ更新として扱っています。
注意が要るのはDebian 11とUbuntu 20.04以前です。Debianの追跡ページでは、bullseye向けは長期サポート版を含めて「未修正」と表示されたままです。Ubuntuも20.04以前は「調査中」で止まっています。古い環境でEAPのVPNを運用しているなら、更新を待つより先に、次節の当座の手当てを検討してください。
Red Hat Enterprise Linuxについては、本稿執筆時点で同社のセキュリティ情報にこの番号の項目が見当たりません。RHELでstrongSwanを使っている場合は、rpm -q strongswan の結果を控えたうえで同社の脆弱性情報の更新を待つことになります。
攻撃は確認されているのか
確認されていません。開発元の告知にも、DebianやUbuntuの告知にも、実際に攻撃されたという記述はありません。米CISAが公開している「実際に攻撃に使われている脆弱性リスト(KEV)」にも、2026年8月23日時点でstrongSwanの項目は1件も入っていません(CISA KEVダッシュボード(日本語版)で確認できます)。攻撃を再現する実証コードの公開も確認できませんでした。
開発元自身、命令実行については「理論上」という言い方にとどめています。実際に起きる可能性が高いのは、VPNの常駐プログラムが落ちて全社員の接続が切れるという形です。悪意がなくても、設定を間違えたクライアントが空の利用者名を送っただけで同じことが起こりえます。
とはいえ、VPN機器は攻撃者が最初に狙う場所であり続けています。Check Point製VPNの認証回避がランサムウェア集団に悪用された件のように、公開されてから数週間で状況が変わることもあります。修正が出ているうちに当てておくのが結局は安上がりです。
何をすればいいか
まず、strongSwanを動かしているサーバーの設定ファイルでeapとxauthを検索します。どちらも出てこなければ、通常のパッケージ更新の順番で構いません。出てきた場合は、その日のうちに更新を当てる対象です。
更新の手順は、Ubuntu・Debianなら apt update && apt install --only-upgrade strongswan、Fedoraなら dnf upgrade strongswan です。更新後はstrongSwanの再起動が必要で、そのタイミングで既存のVPN接続が一度切れます。日中に実行するなら利用者への周知を先にしてください。
更新パッケージが出ていないDebian 11やUbuntu 20.04以前で、すぐに移行もできない場合の当座の手当ては次の2つです。どちらも根本的な修正ではありません。
- 接続元を絞る。UDPの500番・4500番への通信を、拠点や取引先など既知のIPアドレスからだけ受け付けるようファイアウォールで制限します。不特定多数がつなぐリモートアクセス用途では使えません
- EAPの認証をRADIUSサーバーに寄せる。strongSwan自身が利用者名を尋ねない構成にすれば、原則として影響を受けなくなります。ただしRADIUSの応答に含まれるClass属性やFilter-Id属性をグループ名として解釈する設定にしていると、その経路は残ります
strongSwanは開発元がソースコードでの提供を基本にしているため、自分でビルドして入れている現場もあります。その場合は6.0.7への入れ替えか、開発元が用意している旧系列向けの修正パッチの適用になります。ネットワーク機器の中身にstrongSwanが組み込まれている場合は、利用者側では直せません。機器メーカーの脆弱性情報を確認してください。
strongSwanの脆弱性は2026年に入って3件目
strongSwanは今年に入って、半年で3回の緊急リリースを出しています。いずれも認証の入口付近の処理に集中しているのが特徴です。
| 番号 | 内容 | 修正版 |
|---|---|---|
| CVE-2026-25075 | EAP-TTLSの長さ計算の誤りで サービスを停止させられる | 6.0.5(2026年3月23日) |
| CVE-2026-35331 | 証明書の名前の照合で 大文字小文字の扱いが不一致 | 6.0.6(2026年4月22日) |
| CVE-2026-47895 | 識別子の複製で二重解放 (本記事) | 6.0.7(2026年6月8日) |
3件とも、認証が終わる前の段階で受け取ったデータの解釈が原因です。VPNサーバーは「まだ誰か分からない相手からのデータ」を必ず処理しなければならず、その部分の作りが薄いと、パスワードの強度とは無関係に落とされます。VPN1台の侵入が会社全体の業務停止につながった事例を見てきた立場からすると、VPNの受け口だけは更新の優先順位を上げておくのが妥当です。
なお、6.0.7には今回のCVE以外にも、DHCPプラグインとEAP-AKAプラグインの範囲外読み取り、PKCS#7プラグインのNULL参照といった修正が入っています。番号は振られていませんが、更新すればまとめて片付きます。
参照元

堀川 慎
Backend Engineer / AWS / Django / Go