ZoneMinder’s CVE-2024-51482: A 10/10 Severity Vulnerability Exposes SQL Databases
2024/11/04 SecurityOnline — 人気の高いオープンソースのビデオ監視プラットフォームである ZoneMinder に、新たな脆弱性 CVE-2024-51482 (CVSS 9.9) が発見された。この脆弱性の悪用に成功した攻撃者は、SQL データベースの制御を達成し、データの機密性とシステムの整合性を損なう可能性を手にする。

この問題は、web/ajax/event.php 関数内のブール値に起因する、SQL インジェクション脆弱性である。具体的には、tagId パラメータの入力検証が欠如しているため、攻撃者による SQL クエリのダイレクトな操作が可能になる。この脆弱性を明らかにしたのは、$sql コマンド内にダイレクトに挿入された $tagId が、ダイレクトに処理されるという指摘である。それにより、ZoneMinder の v1.37〜v1.37.64 は、SQL インジェクション攻撃を受けやすくなる。
この脆弱性の悪用に成功した攻撃者は、任意の SQL コマンドの実行を達成し、DELETE コマンドなどの危険な操作の実行も可能にする性。URL を “http://hostname_or_ip/zm/index.php?view=request&request=event&action=removetag&tid=1” のように細工することで、攻撃者は tid パラメータを通じて SQL 文の注入を可能にする。セキュリティ研究者の Entropt は、コマンドを使用してプロセスを自動化することで、この悪用を実証した。
sqlmap -u 'http://hostname_or_ip/zm/index.php?view=request&request=event&action=removetag&tid=1'
このような悪用により、深刻な結果が生じる可能性がある。たとえば、SLEEP コマンドなどを用いることで、データ漏洩やサービス中断を引き起こされ、サービス拒否 (DoS) 攻撃を誘発する可能性もある。
この脆弱性は、パラメータ化されたクエリを使用するようにコードを修正し、SQL ステートメントを実行する前に、入力データを効果的に修正することで解決できる。たとえば、更新されたコードでは、SQL クエリをプレース・ホルダを使用するように変更し、直接的なインジェクションを防止する。
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId);
このパッチは、ZoneMinder バージョン 1.37.65 に組み込まれている。ユーザーに推奨されるのは、このバージョン以降にアップデートすることで、環境を安全に保つことだ。
ZoneMinder に、深刻度の高い SQL インジェクションの脆弱性です。すでにパッチが提供されていますので、ご利用のチームは、ご確認ください。2024/08/15 にも「ZoneMinder の脆弱性 CVE-2024-43360 が FIX:SQLi にいたる恐れ」という記事がポストされていますので、併せて ご参照ください。
You must be logged in to post a comment.