公開日:2021/11/25 最終更新日:2021/11/25

JVNTA#94851885
Apache log4netにおけるXML外部実体参照(XXE)の脆弱性

概要

Microsoft .NET Framework向けのオープンソースライブラリApache log4netには、XML外部実体参照(XXE)の脆弱性が存在します。影響を受けるバージョンのlog4netを組み込んで開発された.NET FrameworkベースのWindowsアプリケーションやWebアプリケーションは、本脆弱性の影響を受けます。

影響を受けるシステム

  • Apache log4net(2.0.10 より前のバージョン)を組み込んだ.NET FrameworkベースのWindowsアプリケーションおよびWebアプリケーション

詳細情報

2021年10月末に、PEPPERL+FUCHS社が提供する複数のDTM関連製品およびVisuNetにXML外部実体参照(XXE)の脆弱性が存在するとの情報が公表されました。その脆弱性は2017年9月に発見されたMicrosoft .NET Framework向けのオープンソースライブラリであるApache log4netのXML外部実体参照(XXE)の脆弱性に起因するものであることが分かっています。

PEPPERL+FUCHS社から公開された脆弱性情報の中には、フィールド機器とオートメーションシステムの間でデータ交換を行うための標準規格であるFDT技術に沿って実装された製品があります。FDT2.0では、Microsoft .NET Frameworkでの実装が求められていることから、同社ではFDT/DTMの実装において、ログ出力の仕組みにlog4netを採用したものと考えられます。FDT技術を採用する制御システムベンダーは多く、他の制御システムベンダーにおいてもPEPPERL+FUCHS社と同様にApache log4netを採用したソフトウェアを提供している可能性があります。

影響を受けるバージョンのlog4netが組み込まれているアプリケーションを使用している場合、文書型定義(DTD)の中に外部エンティティが定義されている任意のXMLファイルを設定ファイルとして読み込むと、外部エンティティを参照してしまう問題(CWE-611、CVE-2018-1285)が存在します。そのため、攻撃者によって細工された外部エンティティが定義されているXMLファイルをlog4netの設定ファイルとして読み込むことで、アプリケーションがインストールされているPCやサーバーのローカルリソースや、そこからアクセス可能な外部のリソースにアクセスされて機微な情報が窃取されたり、意図しない設定が読み込まれることによってアプリケーションがサービス運用妨害(DoS)状態になったりする可能性があります。また、SSRF(Server Side Request Forgery)攻撃に使用される可能性もあります。

このlog4netの脆弱性は、2020年9月に修正版が提供されています。Apache log4netは制御システム関連のソフトウェアも含め、さまざまな製品に広く使用されている可能性がありますので、改めて自組織のソフトウェア資産をご確認ください。

想定される影響

log4netが組み込まれたアプリケーションにおいて、細工されたlog4net用の設定ファイルが読み込まれることによって、機微なデータが窃取されたり、DoS状態にされたり、アプリケーションがインストールされているPCやサーバーから別のサーバーを攻撃される可能性があります。

対策方法

log4netが組み込まれた製品を使用するユーザー向け
ワークアランドを実施する
以下の回避策を適用することで、本脆弱性の影響を軽減することが可能です。

  • Apache log4netの設定ファイルは信頼されたもののみを使用する

log4netライブラリを使用する開発者向け
対策済みのバージョンを使用する
本脆弱性に対応したバージョンのライブラリを使用し、最新版にアップデートしてください。
開発元より、本脆弱性に対応したバージョンのライブラリが公開されています。
  • Apache log4net 2.0.10 またはそれ以降のバージョン

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

CVSS v3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
基本値: 9.8
攻撃元区分(AV) 物理 (P) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 低 (L)
必要な特権レベル(PR) 高 (H) 低 (L) 不要 (N)
ユーザ関与レベル(UI) 要 (R) 不要 (N)
スコープ(S) 変更なし (U) 変更あり (C)
機密性への影響(C) なし (N) 低 (L) 高 (H)
完全性への影響(I) なし (N) 低 (L) 高 (H)
可用性への影響(A) なし (N) 低 (L) 高 (H)

分析結果のコメント

CVE-2018-1285に対する評価値です。

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia