CVE-2023-38490
KirbyのXMLデータハンドラーにおけるXML外部エンティティ(XXE)脆弱性
- 公開済み
- 2023/07/27
- 更新済み
- 2024/10/16
- CNA の割り当て
- GitHub_M
- 観察された証拠
- 2026/08/07
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N低 · 今後 30 日間
- パーセンタイル
- 75.8%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Kirby はコンテンツ管理システムです。3.5.8.3、3.6.6.3、3.7.5.2、3.8.4.1、および 3.9.6 より前のバージョンの脆弱性は、サイトまたはプラグインコードで `Xml` データハンドラー(例: `Data::decode($string, 'xml')`)または `Xml::parse()` メソッドを使用する Kirby サイトにのみ影響します。Kirby コアは、影響を受けるメソッドを一切使用しません。XML 外部実体(XXE)は、XML マークアップ言語においてあまり使用されない機能で、外部ファイルのデータを XML 構造に含めることができます。外部ファイルの名前を攻撃者が制御できる場合、これは脆弱性となり、サーバーに保存されている内部データや機密データの開示(任意ファイル開示)や、サーバーに代わってネットワークリクエストを実行する(サーバーサイドリクエストフォージェリ、SSRF)など、さまざまなシステムへの影響に悪用される可能性があります。Kirby の `Xml::parse()` メソッドは PHP の `LIBXML_NOENT` 定数を使用しており、これにより解析操作中に XML 外部実体の処理が有効になっていました。`Xml::parse()` メソッドは `Xml` データハンドラー(例: `Data::decode($string, 'xml')`)で使用されます。脆弱なメソッドとデータハンドラーの両方は、Kirby コアでは使用されません。ただし、サイトやプラグインコードで使用される可能性があります(例: RSS フィードやその他の XML ファイルの解析)。これらのファイルが外部由来の場合(例: ユーザーによってアップロードされた、または外部 URL から取得された)、攻撃者は XML ファイルに外部実体を含めることができ、それが解析プロセスで処理される可能性があります。サイトまたはプラグインコードで XML 解析を使用しない Kirby サイトは *影響を受けません*。この問題は、Kirby 3.5.8.3、3.6.6.3、3.7.5.2、3.8.4.1、および 3.9.6 で修正されています。前述のすべてのリリースで、メンテナは `LIBXML_NOENT` 定数を削除しました。外部実体の処理は解析ロジックの範囲外であるためです。これにより、このメソッドのすべての使用が、説明した脆弱性から保護されます。
ソース
1- exploit-CVE-2023-38490エクスプロイト
Kirby < 3.9.6 XML外部実体エクスプロイト
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。