オープンソース・ソフト Drupal を使った Web サイトの構築・サポート・研修

セキュリティ報告:Webform(D8用 件数7)

Drupal セキュリティ チームからの連絡です(日本時間 2020/05/07(木)02:25 AM~)

今回の Drupal セキュリティー勧告は D8 用の Webform に関する記事が 7 件です。解決方法はすべて同じ。「最新バージョンをインストールする」です。

モジュール(重大性スコア)  使用サイト数

  • Webform (17/25 重大)   105,908 サイト
  • Webform (13/25 重大性 中程度)   105,908 サイト
  • Webform (13/25 重大性 中程度)   105,908 サイト
  • Webform (13/25 重大性 中程度)   105,908 サイト
  • Webform (14/25 重大性 中程度)   105,908 サイト
  • Webform (15/25 重大)   105,908 サイト
  • Webform (11/25 重大性 中程度)   105,908 サイト

以下、解決方法はすべて「最新バージョンをインストールする」。

Webform (SA-CONTRIB-2020-011)

オンラインの原文: Webform - Critical - Remote Code Execution - SA-CONTRIB-2020-011


概要

Webform モジュールを利用すると、Drupal 内でフォームやアンケートを作成できる。

このモジュールでは、Webform を編集する際、Webform 要素のプロパティー(属性)に対するフィルター機能が不十分。このため、悪意のあるユーザーは、こうした属性(#element_validate など)を利用することで、望ましくない PHP コードを実行するように細工することが可能。

ただし、これを悪用するには、攻撃者に「自分の webform を編集(Edit own webform)」または「すべての webform を編集(Edit any webform)」の権限がなくてはならないため、この脆弱性は軽減される。


Webform (SA-CONTRIB-2020-012)

オンラインの原文: Webform - Moderately critical - Access bypass - SA-CONTRIB-2020-012


概要

Webform モジュールを利用すると、Drupal 内でフォームやアンケートを作成できる。

このモジュールでは、Webform 投稿作成の際、Webform Signature 要素内に送られたデータに対する検証が不十分。このため、悪意のあるユーザーが任意のデータ用に HMAC ハッシュを生成、抽出することが可能。こうした HMAC ハッシュは Drupal 8 コアおよび貢献モジュール内の複数箇所で横断的に使用される。

抽出された HMAC ハッシュを利用すると、サイト内の閲覧制限されたコンテンツを見たり、特定の状況下で別のユーザーとしてログインしたりすることが可能になる。

これを悪用するには攻撃者に「Signature」要素を含む webform 投稿を作成し、その投稿を閲覧する権限がなくてはならないため、この脆弱性は軽減される。

信頼できないユーザーが利用できる「Signature」Webform 要素のある Drupal サイトでは settings.php 内にあるハッシュ ソルトを新しいランダムな値に変更することを勧める。以下はこうした Drupal インスタンスにおいて変更を推奨する settings.php の該当部分:

/** * Salt for one-time login links, cancel links, form tokens, etc.
*
* This variable will be set to a random value by the installer. All one-time
* login links will be invalidated if the value is changed. Note that if your
* site is deployed on a cluster of web servers, you must ensure that this
* variable has the same value on each server.
*
* For enhanced security, you may set this variable to the contents of a file
* outside your document root; you should also ensure that this file is not
* stored with backups of your database.
*
* Example:
* @code
* $settings['hash_salt'] = file_get_contents('/home/example/salt.txt');
* @endcode
*/
$settings['hash_salt'] = 'new-value-here';


Webform (SA-CONTRIB-2020-013)

オンラインの原文: Webform - Critical - Remote Code Execution - SA-CONTRIB-2020-011


概要

Webform モジュールを利用すると、Drupal 内でフォームやアンケートを作成できる。

このモジュールでは、設定されたオプション値が未加工(raw)表示される状況において、オプション要素(選択メニュー、チェックボックス、ラジオ ボタンなど)を介して悪意のあるコードがレンダリングされてしまうのを防ぐ機能が不十分。

ただし、これを悪用するには、サイトビルダーに Webform を作成し、オプション要素の投稿表示で「未加工(raw)」を選択する権限がなくてはならないため、この脆弱性は軽減される。


Webform (SA-CONTRIB-2020-014)

オンラインの原文: Webform - Moderately critical - Cross site scripting - SA-CONTRIB-2020-014


概要

Webform モジュールを利用すると、Drupal 内でフォームやアンケートを作成できる。

このモジュールでは、Webform を編集する際、ユーザー入力に対するフィルター機能が不十分。すなわち、メッセージの最小/最大文字数に関連したフィルタリングが足りないため、それを介して JavaScript コードの実行が可能。

ただし、これを悪用するには、攻撃者に「自分の webform を編集(Edit own webform)」または「すべての webform を編集(Edit any webform)」の権限がなくてはならないため、この脆弱性は軽減される。


Webform (SA-CONTRIB-2020-015)

オンラインの原文: Webform - Moderately critical - Cross site scripting - SA-CONTRIB-2020-015


概要

Webform モジュールを利用すると、Drupal 内でフォームやアンケートを作成できる。

このモジュールでは、ブロックを配置するときの Webform ラベルに対するサニタイズ処理および表示条件(visibility conditions)に対するチェックが不十分。Webform ブロックを配置し、それが Web サイト上に表示される際、Webform のラベル内に JavaScript コードが含まれていると、それが実行されてしまう。

ただし、これを悪用するには、攻撃者に「自分の webform を編集(Edit own webform)」または「すべての webform を編集(Edit any webform)」の権限がなくてはならないため、この脆弱性は軽減される。


Webform (SA-CONTRIB-2020-016)

オンラインの原文: Webform - Critical - Access bypass - SA-CONTRIB-2020-016


概要

Webform モジュールでは「ターム選択(Term select)」および「ターム チェックボックス(Term checkboxes)」要素を構築できる。

このモジュールでは、この「ターム選択」および「ターム チェックボックス」要素をレンダリングする際、タームの閲覧アクセスに対するチェックが不十分。このため、非公開のタームも常に「ターム選択」および「ターム チェックボックス」要素内に表示されてしまう。


Webform (SA-CONTRIB-2020-017)

オンラインの原文: Webform - Moderately critical - Access bypass - SA-CONTRIB-2020-017


概要

Webform モジュールを利用すると、Drupal 内でフォームやアンケートを作成できる。

Webform Node サブモジュールがあると、これらのフォームを Drupal ノードに紐付けることができる。ただし、この Webform Node モジュールに実装されているアクセス チェックは、他のノードやエンティティーとはやり方が異なる。このため、webform_node、ノードまたはエンティティー アクセス チェックを実装するカスタム モジュールの作者は、Webform Node コンテンツに対して意図したようなアクセス結果が得られない可能性がある。

この脆弱性が悪用された例は見つかっていない。また、この脆弱性はカスタム コードとノード アクセス モジュールを使用するサイト上にしか存在しない。


解決方法

最新バージョンをインストールする。

  • Drupal 8.x 用の Webform モジュールを使用している場合は Webform 8.x-5.11 にアップデートする。

Webform プロジェクト ページも参照。