
2025年5月、Ciscoは「Cisco IOS XE Wireless LAN Controller (WLC)」ソフトウェアにおける深刻な脆弱性(CVE-2025-20188)を公表しました。CVSSスコアは最高の10.0と評価され、企業の無線ネットワークインフラにおける緊急性の高い問題として注目されています。Horizonは本脆弱性の詳細解説を公開しました。
具体的に悪用できるスクリプトは含まれていませんが、悪用される可能性があるので対象者は脆弱性に対応する事をお勧めします
目次
脆弱性の概要
この脆弱性は、”Out-of-Band AP Image Download” 機能が有効なCisco IOS XE WLC環境に存在し、認証されていない攻撃者が任意のファイルをアップロード可能となるものです。問題の根源は、ハードコードされたJWT(JSON Web Token)にあり、これにより不正なアクセスが可能になります。
影響を受ける主な製品は以下の通りです:
- Catalyst 9800-CL Wireless Controllers for Cloud
- Catalyst 9800 Embedded Wireless Controller for Catalyst 9300/9400/9500シリーズ
- Catalyst 9800 Series Wireless Controllers
- Embedded Wireless Controller on Catalyst APs
※通常のCisco IOS、Meraki、NX-OS、IOS XRなどは影響を受けません。
攻撃の流れ
攻撃者は、最初に脆弱なバージョン(例:17.12.03)と修正済みバージョン(例:17.12.04)を比較し、ファイルシステム上のLuaスクリプトに注目しました。
特に ewlc_jwt_verify.lua
と ewlc_jwt_upload_files.lua
に改修の痕跡が見つかり、これらがJWT検証およびファイルアップロード処理を担っていることが判明しました。
JWTの生成と認証回避
JWTは /tmp/nginx_jwt_key
から読み込まれる秘密鍵を使って生成されますが、鍵が存在しない場合には”notfound”という値が使用されるため、攻撃者はこの値を使ってJWTを偽造できます。これにより、認証を回避してファイルをアップロードすることが可能になります。
任意ファイルのアップロードとパストラバーサル
アップロード先のパスが変数 location
により決定されており、ここに ../../
を含めることで任意の場所にファイルを配置できます。たとえば、/usr/binos/openresty/nginx/html/
にファイルを配置することで、HTTP経由でそのファイルにアクセスできるようになります。
コマンド実行(RCE)への応用
最終的に、ある内部サービス(pvp.sh
)が特定のディレクトリを監視しており、新たなファイル追加を契機に設定ファイルを読み込んでサービスを再起動する仕組みが使われていました。攻撃者はこの設定ファイルを改ざんし、意図したコマンドを実行させることで、リモートコード実行(RCE)を実現できます。
実際のリスク
公開された解説では、攻撃者が簡単なスクリプトでJWTを偽造し、ファイルをアップロードして任意コード実行に至る過程が明確に示されており、悪用の難易度は低いと判断されます。
しかも、特定のバージョンでは初期設定でポート8443が開放されており、AP Image Download機能を明示的に有効化しなくても攻撃対象となる可能性があるという指摘もなされています。
対策と推奨対応
Ciscoはこの脆弱性に対して修正済みソフトウェア(例:17.12.04)をすでにリリースしており、影響を受けるすべての環境で速やかにアップデートすることが最も推奨される対策です。
おわりに
CVE-2025-20188は、エンタープライズ向け無線インフラにおける設計上の脆弱性が、どのようにして重大な攻撃に繋がるかを如実に示した事例です。攻撃者は、一見小さな不備(ハードコードされたキー)から侵入の糸口を見出し、最終的にはroot権限を奪取するまでの一連の流れを構築します。
情報システム部門においては、単なるアップデートの運用にとどまらず、構成機能の見直しや不要なサービスの停止、さらには構成ファイルレベルでのセキュリティ検証も日常的に行う必要があります。
参照