Drupal の expandArguments() 関数の実装に起因する SQL インジェクションの脆弱性(Scan Tech Report) | ScanNetSecurity
2024.03.29(金)

Drupal の expandArguments() 関数の実装に起因する SQL インジェクションの脆弱性(Scan Tech Report)

Drupal に SQL インジェクションの脆弱性が報告されています。

脆弱性と脅威 エクスプロイト
1.概要
Drupal に SQL インジェクションの脆弱性が報告されています。
悪意あるリモートの第三者に利用された場合、Drupal が使用するデータベース上で不正な操作が実行される可能性があります。
既にこの脆弱性を悪用する攻撃が確認されており、攻撃を受ける可能性が高いことが考えられるため、影響を受けるバージョンの Drupal を利用するユーザは可能な限り以下に記載する対策を実施することを推奨します。


2.深刻度(CVSS)
現時点 (2014/10/21) において、CVSS 未割り当て


3.影響を受けるソフトウェア
Drupal 7.0 - 7.31

※1 影響を受けるバージョンの Drupal 7 が含まれる、Debian などの Linux ディストリビューションも、この脆弱性の影響を受けます


4.解説
Drupal は PHP で記述されたオープンソースのコンテンツ管理システム (CMS)です。

Drupal には、DatabaseConnection::expandArguments()※2 関数 (database.inc)において、SQL 文を生成する際に配列パラメータのキーを適切にチェックせず、プレースホルダに展開してしまう不備があります。
このため、特定のパラメータを配列として渡し、配列パラメータのキーに SQL文を指定した不正なリクエストすることで、SQL インジェクション攻撃が可能な脆弱性が存在します。

この脆弱性を利用することでリモートの攻撃者は、Drupal が使用するデータベース上で任意の SQL コマンドが実行可能となります。

なお、既にこの脆弱性を悪用する攻撃が確認されていることが報告※3 されています。また、この脆弱性は Drupageddon という名称で呼ばれています。

※2 https://api.drupal.org/api/drupal/includes!database!database.inc/function/DatabaseConnection%3A%3AexpandArguments
※3 http://www.volexity.com/blog/?p=83
http://blog.sucuri.net/2014/10/drupal-sql-injection-attempts-in-the-wild.html


5.対策
以下の Web サイトより、Drupal 7.32 以降を入手しアップデートすることで、この脆弱性を解消することが可能です。

Drupal 7.32:
https://www.drupal.org/project/drupal

あるいは、下記の修正パッチを入手し適用することでも、脆弱性を解消することが可能です。

patch:
https://www.drupal.org/files/issues/SA-CORE-2014-005-D7.patch


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー・グリッド研究所

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《株式会社ラック デジタルペンテスト部》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×