
概要
2023年後半、セキュリティ研究者は、Cisco IOS XE Web UIに影響する重大な連鎖的脆弱性を発見し、認証されていない攻撃者が影響を受けるデバイスを完全に制御できるようにしました。この攻撃チェーンは、2つのセキュリティ脆弱性(CVE-2023-20198と CVE-2023-20273)を組み合わせたもので、同時に悪用されると、IOS XEを実行しているLinuxホスト上でルートレベルのコマンド実行につながります。これにより、デバイスの完全な乗っ取り、永続的なアクセス、企業ネットワーク全体にわたる潜在的な横移動が可能になります。
- cve-2023-20198:この脆弱性は、Cisco IOS XESoftware バージョン 16.0.x から 17.9.x に存在し、認証されていない攻撃者が Web UI 経由で初期アクセスを行い、特権レベル 15 (管理者) アカウントを作成することを可能にします。一度作成されると、攻撃者はデバイス上であらゆる管理操作を実行できるようになり、深刻なセキュリティリスクを引き起こします。

- cve-2023-20273:この脆弱性は、同じソフトウェアバージョンに影響し、レベル 15 の特権を持つ認証済みユーザが、ソフトウェア管理コンポーネントのコマンドインジェクションの不具合を介して、基盤となる Linux オペレーティングシステム上で root 権限で任意のコマンドを実行できるようにします。

OPSWAT フェローシップ・プログラムでは、フェローのHoa X.NguyenとNhan Nguyenが、この攻撃チェーンの詳細な技術分析を実施しました。この研究では、IOS XE 17.01が動作するCisco Catalyst 9300-24T-Eスイッチ上で脆弱性を再現し、実環境下で欠陥が連鎖してシステムを完全に侵害できることを実証しました。
背景
Cisco IOS XEの概要

Cisco IOS XEは、ルータ、スイッチ、ワイヤレスコントローラなど、シスコのエンタープライズプラットフォームの多くを支える最新のモジュール型ネットワークオペレーティングシステムです。従来のCisco IOSの豊富な機能と、より安全でプログラマブルなLinuxベースのアーキテクチャを融合し、ネットワーク管理者に柔軟性とパフォーマンスの向上をもたらします。
IOS XEは、IOSd(IOSデーモン)と呼ばれるメインプロセスをホストするLinuxオペレーティングシステムとして動作します。このデーモンは、ルーティング、CLI管理、設定制御などの従来のネットワークタスクを処理します。IOS XE 17.01では、IOSdのバイナリは/usr/binos/bin/x86_64_crb_linux_iosd_ngwc-universalk9-msに存在します。
レガシーのシスコシステムズとは異なり、SSH経由で接続するIOS XEユーザーは、基礎となるLinux環境ではなく、制限されたIOSdサブシステムシェル内に配置されます。この設計は、オペレーティングシステムの真のルートレベルのアクセスを分離し、ユーザーインタラクションとホストカーネル間の全体的なセキュリティ境界を大幅に強化します。
シスコ特権レベル
シスコデバイスは、ユーザー権限を制御するために階層的な権限モデルを実装しています:
- レベル0 - ゼロレベルのアクセス:これは最も制限されたレベルである。通常、ログアウト、有効化、無効化、ヘルプ、終了など、限られた基本的なコマンドしか許可されません。
- レベル1 - ユーザーEXECモード:標準的なログインのデフォルトアクセスで、基本的なシステムの閲覧は可能ですが、構成の変更はできません。
- レベル15 - 特権EXECモード:これは最高の特権レベルで、デバイスの完全な制御を許可します。このレベルのユーザーは、コンフィギュレーションコマンドを含むすべてのコマンドを実行でき、デバイスをリロードできます。
中級レベル(2-14)は、特定の権限を付与するようにカスタマイズすることができます。権限は継承されます。つまり、上位レベルのユーザーは下位レベルの権限を自動的に所有します。
シスコWeb UIアーキテクチャ
Cisco IOS XE Web UIは、デバイスを管理および監視するためのブラウザベースのインターフェイスを提供し、コマンドラインアクセスを必要とせずに設定および診断機能を提供します。内部的には、Web UIはNGINXをミドルウェアプロキシとして活用し、Webサービス管理エージェント(WSMA)を含むさまざまな内部サービスにユーザリクエストをルーティングします。
WSMAコンポーネントは、Web UIと基礎となるIOSdデーモン間の通信ブリッジとして機能し、Webベースのアクションを対応するIOS XE設定コマンドに変換します。

アクセス制御を実施するために、各リクエストは専用のHTTPヘッダー(Priv-Level)を通してSOAPベースの認証と権限検証を受け、許可されたユーザーだけが特権操作を実行できるようにします。

テクニカル分析
CVE-2023-20198 - 認証バイパスおよび特権の昇格
フェローたちは、この脆弱性が Cisco IOS XE のWeb UI HTTP エンドポイントに根ざしていることを発見しました。入ってくるリクエストを処理する際、Web UI はコマンドとそれに関連するユーザーパーミッションを内部エンドポイント(/lua5)に渡し、その後NGINXによってプロトコルに応じて 2 つの WSMA ハンドラ(/webui_wsma_http または /webui_wsma_https)のうちの 1 つにルーティングされます。


IOSdバイナリの静的解析により、デフォルトのフォールバックハンドラを含むNGINXの設定も判明した:

この脆弱性は、NGINXと IOSdが URLエンコーディングを処理する方法に起因しています。両コンポーネントはURLパスを独立してデコードするため、攻撃者は二重エンコーディングのバイパスを悪用することができます。
たとえば、/webui_wsma_https が /%2577ebui_wsma_https として送信された場合、NGINX は1 回のデコードを行い、/%77ebui_wsma_https(保護された内部ルートに直接マッチしない)を確認します。リクエストが IOSd バックエンドに到達すると、IOSd は 2 回目のデコードを行い、 /webui_wsma_https へのパスを解決します。

NGINXは最初にデフォルトのハンドラを使用してこの不正なリクエストをルーティングするため、通常の認証およびアクセス制御ロジックを実行できません。その結果、攻撃者は自分自身に管理者レベル(15)の権限を割り当てる、偽造された Priv-Level ヘッダを注入することができます。新しいユーザを作成するコマンドを含むSOAP XMLペイロードと組み合わされることで、高権限のローカルアカウントが無言で作成される。

この悪用は事前の認証を必要とせず、攻撃者はウェブUIを介してデバイスの完全なコンフィギュレーション・コントロールを提供し、攻撃チェーンの第一段階を確立する。
CVE-2023-20273 -Software 管理におけるコマンド・インジェクション
新しく作成された管理者アカウントで認証されると、攻撃者はソフトウェア管理コンポーネント (/webui/rest/softwareMgmt/*) のコマンドインジェクションの脆弱性CVE-2023-20273 を悪用することができます。このエンドポイントは、正当な管理者がデバイスにソフトウェアパッケージをインストールまたはアップデートするためのものです。
この関数は validator.validateIPv4IPv6HostNameAddress(req.ipaddress)を呼び出して、 リクエストで指定されたIPアドレスを検証する。この検証ステップは、指定されたアドレスが正しくフォーマットされていて安全に使用できることを確認するためのものです。
validateIPv4IPv6HostNameAddressの中で、検証はutils.isIPv6Address(ip)というヘルパールーチンに依存してIPv6構文への準拠を評価する。この関数は、入力をコロン(:)で分割し、無効な16進数パターンや範囲外の値を拒否することを意図した正規表現で各セグメントを評価することで、入力を解析しようとします。この正規表現には実装上の欠陥がある。許容度が高すぎる*量化子により、どのような入力にもマッチしてしまい、事実上、不正な形や悪意のある値がチェックされずに検証を通過してしまうのだ。

その結果、攻撃者が管理するデータは有効なものとして受け入れられ、ダウンストリームロジックに流れ込み、コマンドの構築に使用される。信頼されていないIPアドレス値は、最終的にrunPexecCommand()関数内で使用され、TFTPリクエストを開始するシステムコマンドを構築する。この操作は、入力検証やエスケープを行わずに行われるため、攻撃者は任意のコマンドをプロセスに注入することができ、昇格した特権でコマンドを実行し、Ciscoデバイスを完全に侵害することができます。

概念実証(PoC)
OPSWAT フェローシップ・プログラムでは、フェローのHoa X. NguyenとNhan Nguyenが、IOS XE 17.01が動作するCisco Catalyst 9300-24T-Eを使用し、エアギャップ制御されたラボで連鎖エクスプロイトを再現しました。エクスプロイトのシーケンスは、以下の段階に要約されます:

- 二重エンコードされたリクエスト:二重エンコードされた内部パス(例えば、/%2577ebui_wsma_https)に特別に細工した POST を送信してください。このパスはプロキシ・フォールバックを経由してルーティングされ、偽造された Priv-Level ヘッダとアカウント作成 SOAP ペイロードを含んでいます。
- 管理者セッションの獲得:作成したアカウントでログインし、セッション/CSRF トークンを収集します。
- ペイロードのアップロード:Web UIのアップロードを使用して、attacker_shell.shをデバイスに配置します(管理者専用アクション)。
- SMU経由で実行:細工したipaddressでSMUリクエストを送信する(例. 100:100:100:$(/bin/sh /bootflash/attacker_shell.sh))でSMUリクエストを送信します。バリデーションは回避され、アップロードされたスクリプトはrootとして実行されます。

修復
Cisco 社は、CVE-2023-20198 および CVE-2023-20273 の両方に対応した Cisco IOS XESoftware パッチバージョンをリリースしました。16.0.xから17.9.xまでの影響を受けるリリースを運用しているすべての組織は、シスコの公式セキュリティアドバイザリに記載されている最新の修正バージョンに直ちにアップグレードしてください。これらのアップデートを適用することで、根本的な脆弱性が効果的に取り除かれ、Web UI を介した権限の昇格やコマンドインジェクションが防止されます。
早急なアップグレードが不可能な環境では、管理者は信頼できないネットワークからの Web UI アクセスを制限または無効にし、管理インターフェイスの厳格な認証制御を実施し、不正なアカウント作成や異常な設定変更など、異常なシステム動作を継続的に監視する必要があります。
全体的なサイバー耐性を強化するために、組織はベンダーのパッチ適用をOPSWAT MetaDefender プラットフォームで補完することができます。 MetaDefender プラットフォームは、ファイル、デバイス、データフロー全体で脅威を検出・防止することによって重要なインフラストラクチャを保護するように設計された統合セキュリティフレームワークです。MetaDefender ネットワークと運用ワークフローに統合することで、可視性を高め、より深い脅威の検査を保証し、管理システムを標的とした潜在的な悪用の試みに対する追加的な安全策を提供します。
タイムリーなCiscoのアップデート、強固なアクセス制御、そしてMetaDefender プラットフォームによってサポートされるレイヤードディフェンス戦略を組み合わせることで、組織は類似のエクスプロイトチェーンにさらされる機会を大幅に減らし、より強固で回復力のあるセキュリティ体制を維持することができます。
