Cisco Talos では最近、WAGO 社の複数の製品に潜むいくつかの脆弱性を発見しました。WAGO 社は、「e!COCKPIT」と呼ばれる一連の自動化ソフトウェアを提供しています。これらのソフトウェアは、自動化タスク、マシン、システムの起動を高速化することを目的とした統合開発環境です。e!COCKPIT ソフトウェアは、PFC100 や PFC200 など、さまざまな自動化コントローラと通信します。今回の脆弱性は e!COCKPIT ソフトウェアまたは関連する 2 つの自動化コントローラ内に存在します。リモートの攻撃者はこれらの脆弱性を悪用して、コマンドインジェクション、情報漏えい、リモートコード実行など、さまざまな不正操作を実行する可能性があります。Talos は情報開示方針に従って WAGO 社と協力し、今回の脆弱性が解決済みであり、影響を受けた利用者向けにアップデートが利用可能であることを確認しています。
脆弱性の詳細
WAGO e!Cockpit の認証で暗号化キーがハードコードされている脆弱性(TALOS-2019-0898/5106)
WAGO e!Cockpit バージョン 1.5.1.1 の認証機能には、ハードコードされた暗号化キーに起因する脆弱性が存在します。e!Cockpit と CoDeSyS Gateway の間の通信にアクセスできる攻撃者は、ログインしようとしているユーザのパスワードをプレーンテキストで簡単に復元できます。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO e!Cockpit のネットワーク通信におけるクリアテキスト伝送の脆弱性(TALOS-2019-0899/CVE-2019-5107)
WAGO e!Cockpit バージョン 1.5.1.1 には、ネットワーク通信がクリアテキストで伝送される脆弱性が存在します。ネットワークトラフィックにアクセスできる攻撃者は、e!Cockpit で送受信されるデータの傍受、解釈、操作を簡単に行うことができます。これにはエンドポイントに転送されるパスワード、設定、バイナリが含まれます。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC100/200 Web-Based Management(WBM)認証時の正規表現に起因する、情報漏えいの脆弱性 (TALOS-2019-0923/CVE-2019-5134)
WAGO PFC100/200 コントローラの Web-Based Management(WBM)認証機能には、正規表現がアンカーされないことに起因するエクスプロイト可能な脆弱性が存在します。攻撃者は細工された認証リクエストを使用して正規表現フィルタをバイパスし、パスワードハッシュなどの機密情報を盗み出せる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC100/200 Web-Based Management (WBM) の認証のタイミングに起因する、情報漏えいの脆弱性(TALOS-2019-0924/CVE-2019-5135)
:WAGO PFC100/200 コントローラの Web-Based Management(WBM)Web アプリケーションの認証機能には、エクスプロイト可能なタイミングの不一致の脆弱性が存在します。WBM アプリケーションでは PHP の「crypt()」関数が使用されますが、攻撃者はこれを悪用して、ハッシュ化されたユーザのログイン情報を盗める可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC100/200 Web-Based Management(WBM)FastCGI の設定でリソースプールが不十分なことに起因する、サービス拒否の脆弱性(TALOS-2019-0939/CVE-2019-5149)
バージョン 14(03.02.02)より古いファームウェア(バージョン 12、13、14 でテスト済み)がインストールされた WAGO PFC100 / PFC2000 で実行されている WBM Web アプリケーションは、lighttpd Web サーバ上で実行され、FastCGI モジュールが使用されます。FastCGI モジュールの目的は「Web サーバ API のペナルティなしですべてのインターネット アプリケーションに高いパフォーマンスを提供する」ことです。しかしモジュールのデフォルト設定では、php-cgi の同時プロセス数が合計 2 つまでに制限されています。これをエクスプロイトされると、Web サーバ全体でサービス拒否状態を引き起こされる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 のクラウド接続パラメータ値に起因する、コードインジェクションの脆弱性(TALOS-2019-0948/CVE-2019-5155)
WAGO PFC200 のクラウド接続機能には、エクスプロイト可能なコマンドインジェクションの脆弱性が存在します。攻撃者は、ファームウェア アップデート コマンドに含まれるパラメータ値のいずれかにオペレーティング システム コマンドを挿入できます。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 のクラウド接続機能の TimeoutPrepared パラメータ値に起因する、コマンドインジェクションの脆弱性(TALOS-2019-0949/CVE-2019-5156)
WAGO PFC200 のクラウド接続機能には、エクスプロイト可能なコマンドインジェクションの脆弱性が存在します。攻撃者は、ファームウェア アップデート コマンドに含まれる TimeoutPrepared パラメータ値にオペレーティング システム コマンドを挿入でる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 のクラウド接続機能の TimeoutUnconfirmed パラメータ値に起因する、コマンドインジェクションの脆弱性(TALOS-2019-0950/CVE-2019-5157)
WAGO PFC200 のクラウド接続機能には、エクスプロイト可能なコマンドインジェクションの脆弱性が存在します。攻撃者は、ファームウェア アップデート コマンドの TimeoutUnconfirmed パラメータ値にオペレーティング システム コマンドを挿入できる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO e!COCKPIT におけるファームウェアダウングレードの脆弱性(TALOS-2019-0951/CVE-2019-5158)
WAGO e!COCKPIT の自動化ソフトウェアのファームウェアアップデート機能には、エクスプロイト可能なファームウェアダウングレードの脆弱性が存在します。細工されたファームウェア アップデート ファイルにより、新しいファームウェアだと見せかけて、古いファームウェアをインストールできる可能性があります。脆弱性は、無効なメタデータを含むカスタムのファームウェア アップデート パッケージによりトリガーされるおそれがあります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO e!COCKPIT のファイルパスに起因する、不十分な入力検証の脆弱性(TALOS-2019-0952/CVE-2019-5159)
WAGO e!COCKPIT の自動化ソフトウェアのファームウェアアップデート機能には、不十分な入力検証のエクスプロイト可能な脆弱性が存在します。攻撃者は細工されたファームウェア アップデート ファイルを使用することで、ファームウェアのアップデート実行中に WAGO コントローラ上の任意の場所に任意のファイルを書き込み、任意コードを実行できる可能性があります。攻撃者はハードコードされたパスワードを使用することで、悪意のあるファームウェア アップデート ファイルを作成できます。この脆弱性をトリガーするには、ユーザが e!COCKPIT を介してファームウェアアップデートを開始し、ファイルブラウザを使用して悪意のある「wup」ファイルを選択する必要があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 のクラウド接続に起因する、不十分なホスト検証の脆弱性 (TALOS-2019-0953/CVE-2019-5160)
WAGO PFC200 のクラウド接続機能には、不十分なホスト検証のエクスプロイト可能な脆弱性が存在します。攻撃者は細工された HTTPS POST リクエストを使用してソフトウェアを不正なホストに接続し、ファームウェアアップデート機能へ不正にアクセスできる可能性があります。攻撃者は認証済みの HTTPS POST リクエストを送信し、攻撃者が制御する Azure IoT Hub ノードへクラウド接続ソフトウェアを誘導して接続することができます。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 のクラウド接続機能に起因する、リモートコード実行の脆弱性(TALOS-2019-0954/CVE-2019-5161)
WAGO PFC200 のクラウド接続機能には、エクスプロイト可能なリモートコード実行の脆弱性が存在します。攻撃者は細工された XML ファイルを使用することで、シェルスクリプトをダウンロードして root 権限で実行するようにクラウド接続サービスを誘導できます。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 の iocheckd サービス「I/O-Check」のキャッシュ/DNS 値に起因する、DNS コード実行の脆弱性(TALOS-2019-0961/ CVE-2019-5166)
WAGO PFC 200 の iocheckd サービス「I/O-Check」には、エクスプロイト可能なスタック バッファ オーバーフローの脆弱性が存在します。デバイス上の特定の場所に書き込まれた、細工された XML キャッシュファイルにより、スタック バッファ オーバーフローが発生し、コードを実行される可能性があります。攻撃者は、細工されたパケットを送信することで、このキャッシュファイルの解析をトリガーできる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 の iocheckd サービス「I/O-Check」のキャッシュに起因する、コマンドインジェクションの複数の脆弱性(TALOS-2019-0962/CVE-2019-5167 および CVE-2019-5175)
WAGO PFC 200 の iocheckd サービス「I/O-Check」には、エクスプロイト可能なコマンドインジェクションの脆弱性が存在します。攻撃者はデバイス上の特定の場所に細工された XML キャッシュファイルを書き込むことで、OS コマンドを挿入できる可能性があります。攻撃者は、細工されたパケットを送信することで、このキャッシュファイルの解析をトリガーできる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 の iocheckd サービス「I/O-Check」のキャッシュに起因する、任意コード実行の複数の脆弱性(TALOS-2019-0963/CVE-2019-5176 および CVE-2019-5182)
WAGO PFC 200 では、iocheckd サービス「I/O-Check」に起因するエクスプロイト可能なスタック バッファ オーバーフローの脆弱性が存在します。デバイス上の特定の場所に書き込まれた、細工された XML キャッシュファイルにより、スタック バッファ オーバーフローが発生し、コードを実行される危険性があります。攻撃者は、細工されたパケットを送信することで、このキャッシュファイルの解析をトリガーできる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
WAGO PFC200 の iocheckd サービス「I/O-Check」のキャッシュに起因する、ゲートウェイメモリ破損の脆弱性(TALOS-2019-0965/CVE-2019-5184)
WAGO PFC 200 の iocheckd サービス「I/O-Check」には、エクスプロイト可能なダブルフリーの脆弱性が存在します。細工された XML キャッシュファイルがデバイス上の特定の場所に書き込まれた場合、ヒープポインタが 2 回解放されてサービス拒否を引き起こされ、任意コードを実行される危険性があります。攻撃者は、細工されたパケットを送信することで、このキャッシュファイルの解析をトリガーできる可能性があります。
包括的な脆弱性アドバイザリはこちらをご覧ください。
脆弱性が確認されたバージョン
TALOS では、ファームウェアバージョン 03.00.39(12)および 03.01.07(13)を実行する WAGO PFC200 と、ファームウェアバージョン 03.00.39(12)および 03.02.02(14)を実行する PFC100 でテストを実施し、TALOS-2019-0939 の影響を受けることを確認しています。
ファームウェアバージョン 03.00.39(12)および 03.01.07(13)を実行する WAGO PFC200 と、ファームウェアバージョン 03.00.39(12)を実行する PFC100 は、TALOS-2019-0923 および TALOS-2019-0924 の影響を受けます。
TALOS-2019-0948、TALOS-2019-0949、TALOS-2019-0954、および TALOS-2019-0950 は、バージョン 03.02.02(14)、03.01.07(13)、および 03.00.39(12)を実行する PFC200 に影響します。
以前のバージョンのファームウェアの検査を踏まえると、これらの脆弱性は両デバイスで(少なくとも)過去 10 バージョンのファームウェアに影響を与えると考えられます。
TALOS-2019-0952 および TALOS-2019-0951 は WAGO e!COCKPIT バージョン 1.6.0.7 に影響します。
Talos では、03.00.39(12)を実行する WAGO PFC200 および PFC100 が TALOS-2019-0862 ~ 0864 および TALOS-2019-0870 ~ 0874 の影響を受けることをテストし、確認しています。
カバレッジ
脆弱性のエクスプロイトは、以下の SNORTⓇ ルールにより検出可能です。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新のルールの詳細については、Firepower Management Center または Snort.org を参照してください。
Snort ルール: 50786 ~ 50789、50790 ~ 50793、50797、52023、52131、52238、52274、52275
本稿は 2020年3月9日に Talos Group のブログに投稿された「Vulnerability Spotlight: WAGO products contain remote code execution, other vulnerabilities」の抄訳です。