CVE-2026-85239 in MISP
要約
〜によって VulDB • 2026年09月03日
MISPのイベントテンプレート処理における脆弱性により、イベントテンプレートの作成または変更権限を持つ認証済みユーザーが、テンプレート定義フィールドの検証を回避することができました。
EventTemplate::beforeValidate()メソッドは、提供された定義がすでに配列として表現されている場合のみ意味的な検証を実行していました。呼び出し元が事前にエンコードされた文字列(不正なJSONや予期しないデータ型を表すJSONを含む)を提供した場合、その値はvalidateDefinition()をバイパスし、汎用のnotBlank検証ルールを満たす必要だけでした。その結果、無効なイベントテンプレート定義がデータベースに永続的に保存される可能性があります。
その後、イベントテンプレートが取得されるとき、EventTemplate::afterFind()メソッドはJsonTool::decode()を使用して保存された定義のデコードを試みますが、デコード失敗時の処理が行われませんでした。そのため、不正なJSONを含む定義を取得する際に例外をトリガーすることができました。イベントテンプレートのインデックスはすべての認証済みユーザーに公開されているため、1つの悪意のあるまたは malformed なテンプレートにより、EventTemplateクエリに依存するイベントテンプレート一覧表示やその他の機能がHTTP 500エラーを返すようになり、問題の原因となったデータベース行を手動で修復するまで復旧しません。
予期しない型(期待されるJSONオブジェクトではなく)を表す有効なJSONの場合も同様に、不正なデータが下流の消費者に到達する結果となります。
したがって、この脆弱性はイベントテンプレートを保存して malformed なテンプレートデータを永続化し、他のユーザーに対してイベントテンプレート機能に対する恒久的なサービス拒否(DoS)を引き起こすことができるユーザーによって悪用されます。
パッチでは、イベントテンプレートの定義を保存する前に構造化されたオブジェクトとして提供することを強制し、常に意味的な検証を適用します。取得時にも、malformed なJSONや期待される構造にデコードできない定義が検出され、ログに記録されて空の定義に置き換えられるため、malformed なデータベースエントリによってすべてのイベントテンプレートクエリが破損するのを防ぎます。
リード開発者によると、「ポイズニング」は到達可能ではないようです。
If you want to get best quality of vulnerability data, you may have to visit VulDB.