ETS6のlog4net.dllが古いとセキュリティツールが報告するのはなぜですか?
ETSには、以前のすべてのETSバージョンで作成されたプロジェクトとの互換性を保つために、2つの異なるコンバーター技術が含まれています:
レガシーコンバータ(ETS1-ETS3の間のプロジェクト)
はlog4net v2.0.8を使用し、非常に古いプロジェクトを開いて変換するためだけに保持されています。モダンコンバータ(CVnext)(XML 1.4以降の全ての現行プロジェクトデータ用)
はlog4net v2.0.12を使用しており、活発にメンテナンスされています。
両方のコンバーターが必要なので、例えば、両方のlog4netバージョンは別々のフォルダにインストールされます:
C:\Program Files (x86)\ETS5\CV\5.6.241.33672\log4net.dllC:\Program Files (x86)\ETS6\CV\5.6.241.33672\log4net.dll
ETS6はCVE-2018-1285の影響を受けますか?
No. ETS6はCVE-2018-1285の影響を受けません。
このCVEは、攻撃者が制御するlog4net設定ファイルを受け入れるアプリケーションにおいて、XXEベースの攻撃を可能にする脆弱性について説明しています。 ETSは、外部またはユーザーが管理するいかなるlog4net設定ファイルも受け付けません。 ETSが使用するlog4netコンフィギュレーションは、内的で静的なものです。 そのため、CVE-2018-1285が必要とする攻撃シナリオはETSには当てはまりません。
古いlog4net.dll(v2.0.8)は削除できますか?
いいえ、古いlog4net.dllを削除すべきではありません。
log4net v2.0.8ファイルは、レガシーコンバーターが古いETSプロジェクト(ETS1-ETS3)を開いて変換するために必要です。 このファイルを削除すると、古いプロジェクトが正しく開かなくなったり、変換できなくなったりします。
ETS6の最新バージョンにアップデートしても、2種類のlog4netファイルが残っているのはなぜですか?
この動作は意図されたものです。 このアップデートによって、レガシーコンバーターやそのライブラリーが削除されるわけではありません。何故なら多数のユーザーがまだ古いETSプロジェクトで作業しなければならないからです。 ETSがあらゆる世代のプロジェクトに確実に対応できるよう、両コンバーターは引き続き利用可能でなければなりません。
まとめ
log4net v2.0.8 - 非常に古いETSプロジェクト用のレガシーコンバータでのみ使用。
log4net v2.0.12 - モダンコンバータ(CVnext)で現在のプロジェクトデータすべてに使用されます。
CVE-2018-1285に対してETS6は脆弱ではありません、何故なら攻撃者が管理するlog4netの設定ファイルを読み込まないためです。
古いlog4net.dllファイルは後方互換性のために必要で、削除しないでください。