Drupal の expandArguments() 関数の実装に起因する SQL インジェクションの脆弱性(Scan Tech Report)
Drupal に SQL インジェクションの脆弱性が報告されています。
脆弱性と脅威
エクスプロイト
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
《株式会社ラック デジタルペンテスト部》