
CVE-2020-8809 および CVE-2020-8810
Gurux GXDLMS Director は、DLMS/COSEM プロトコルを使用してエネルギー計量器とやり取りするためのオープンソースの Windows プログラムです。
このソフトウェアには、アドイン DLL と、OBIS コード(スマートメーターとやり取りするために必要なデバイス固有の定義)を含むファイルのためのリモート更新機能があります。
| CVEID | Name of the affected product(s) and version(s) | Problem type |
|---|---|---|
| CVE-2020-8809 | Gurux GXDLMS Director (all versions prior to 8.5.1905.1301) | CWE-494: 整合性チェックなしのコードのダウンロード |
| CVE-2020-8810 | Gurux GXDLMS Director (all versions) | CWE-23: 相対パストラバーサル |
概要
8.5.1905.1301 より前のすべてのバージョンの Gurux GXDLMS Director には、暗号化されていない HTTP 接続を介して動作するアドインと OBIS コードの更新メカニズムが含まれています。さらに、すべてのバージョンには、OBIS コードのダウンロード時に発生するパストラバーサルのバグが含まれています。これらの脆弱性は、攻撃者がコード実行を行うために使用される可能性があります。
説明
中間者攻撃者(例えば、悪意のある Wi-Fi ネットワーク運営者)は、gurux.fi/obis/files.xml と gurux.fi/updates/updates.xml の内容を変更することで、ユーザーにアップデートのダウンロードを促すことができます。その後、攻撃者はダウンロードされたファイルの内容を変更できます。アドインの場合(ユーザーがそれらを使用している場合)、これはコード実行につながります。OBIS コードの場合(ユーザーはエネルギー計量器と通信するために常に使用している)、攻撃者はパストラバーサル脆弱性を悪用してコード実行を達成できます。
OBIS コードをダウンロードする際、プログラムはダウンロードされたファイルが実際の OBIS コードであることを検証せず、パストラバーサルもチェックしません。これにより、攻撃者は実行可能ファイルを送信して自動実行ディレクトリ(再起動後に実行)に配置したり、既存の GXDLMS Director インストール内に DLL を配置したり(GXDLMS Director の次回実行時に実行)することができます。これは、ユーザーがアドインをインストールしていなくても、コード実行を達成するために使用できます。
再現手順
obis というディレクトリを作成します。obis/files.xml というファイルを作成します。<files>
<file modified=”28-09-2099″ name=”Iskraemeco”>../../../../../../../../../../Users/Public/Documents/test.txt</file>
</files>
Users/Public/Documents ディレクトリを作成します。Users/Public/Documents/test.txt というファイルを作成します。C:\Windows\system32\drivers\etc\hosts ファイルを編集し、次の行を追加します: 127.0.0.1 gurux.fi (HTTP サーバーが Windows マシンと同じでない場合は、127.0.0.1 をサーバーの IP に置き換えてください)。C:\Users\Public\Documents\ に test.txt ファイルが含まれていることを確認します。対策
Gurux GXDLMS Director を最新バージョンに更新してください。