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

セキュリティー報告:Drupal コア 7.x&8.x、JSON API 8.x、CKEditor Upload Image 8.x

Drupal セキュリティーチームからの連絡です(日本時間 2018/02/22(木)03:24 AM~)

今週は Drupal コア(D7、D8)と拡張モジュール 2 つです。コアは早急な対応が必要です。拡張モジュールは使用サイト数が 5,000 弱の JSON API の情報だけを訳しました。CKEditor Upload Image モジュールについては原文をご覧ください。

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


Drupal core

オンラインの原文: Drupal core - Critical - Multiple Vulnerabilities - SA-CORE-2018-001


概要

このセキュリティー勧告では Drupal 7 と Drupal 8、両方における多重の脆弱性に対する解決策を扱う。以下はその内容一覧。

  • コメント返信フォームから、制限されたコンテンツへのアクセスが可能 - 重大 - Drupal 8
  • コメント投稿権限のあるユーザーが、閲覧権限のないはずのコンテンツとコメントも閲覧し、さらにそのコンテンツにコメントを付けることまで可能になっている。

    事実として、コメント機能が有効になっていて、攻撃者にはコメントを投稿する権限がなくてはならないので、この脆弱性は軽減される。

  • JavaScript のクロスサイト スクリプティング対策が不完全 - 重大 - Drupal 7 および Drupal 8
  • Drupal には Drupal.checkPlain() という JavaScript 関数があり、潜在的に危険なテキストが HTML に出力される前にそれをエスケープするために使用される。この関数は悪意のある HTML コードの注入方法すべてを適切に処理するわけではない。このため、特定の状況においてクロスサイト スクリプティングの脆弱性につながる可能性がある。

    HTML エスケープのために Drupal に備わっている PHP 関数は、この影響を受けない。

  • プライベート ファイルに対するアクセス バイパス - 重大性中程度 - Drupal 7
  • Drupal のプライベート ファイル システムを使用している場合、Drupal は、ユーザーにファイルの閲覧またはダウンロードを許可する前に、そのユーザーのアクセス権限をチェックする。しかし、あるモジュールがファイルへのアクセスを許可、別のモジュールがアクセスを拒否しようとする場合、このチェックが適切に機能しないことがある。このため、アクセス バイパスの脆弱性につながる。

    事実として、この問題は一般的なサイト構成・設定では起こらないので、この脆弱性は軽減される。

  • 信頼できないドメインにおける jQuery 脆弱性 - 重大性中程度 - Drupal 7
  • 信頼できないドメインに対して Ajax リクエストを実行する場合、jQuery クロスサイト スクリプティングの脆弱性がある。事実として、これを悪用するには拡張(貢献)またはカスタム モジュールが必要なため、この脆弱性は軽減される。

    Drupal 8 においては、Drupal コアが新バージョンの jQuery を使うようアップグレードしたため、その二次効果として、これは Drupal 8.4.0 ですでに解決している。Drupal 7 では、本リリース バージョン(Drupal 7.57)で、jQuery 1.4.4(Drupal 7 コアに付属のバージョン)および jQuery Update モジュールなど、サイト内で使用されている可能性のある、それより新しい jQuery バージョンに対して解消している。

  • ノード アクセス制御をかけている多言語サイトにおいて、言語フォールバック機能が正しく機能しない可能性がある - 重大性中程度 - Drupal 8
  • 多言語サイトでノード アクセス コントロールを使用している場合、Drupal は、アクセス クエリーに対して、翻訳されていないバージョンのノードをデフォルト(フォールバック)として認識する。このフォールバックは、作成されたノードの翻訳バージョンがまだ存在しない言語に対して使用される。この結果、アクセス バイパスの脆弱性が生じ得る。

    事実として、この問題は 1)「Content Translation モジュール」と 2) hook_node_access_records() を実装する Domain Access などの「ノード アクセス用モジュール」の両方を使用しているサイトにのみ当てはまるため、この脆弱性は軽減される。

    注意:本アップデート(バージョン)は、ノード アクセス テーブルを「再構築(rebuild)が必要」とマークするため、大量のノードがあるサイトでは、その(再構築)処理に長時間を要することになる。

  • Settings Tray アクセス バイパス - 重大性中程度 - Drupal 8

    Settings Tray モジュールには脆弱性があり、ユーザーは更新権限のない特定のデータを更新できてしまう。

    拡張(貢献)モジュールまたはカスタム モジュールに Settings Tray フォームを実装した場合、正しいアクセス チェックが加えられるべき。このリリース(バージョン)ではコア内の 2 つの実装のみが修正されている。そのほかのこうしたバイパスは引き続き可能なまま。

    この脆弱性は、Settings Tray モジュールを無効にすることで軽減される。

  • 現在のページへのリンクがある 404 ページへの外部リンク注入 - 重大性軽度 - Drupal 7
  • 言語スイッチャー(言語切り替え)ブロック(language switcher block)を使用している場合、Drupal コアには外部リンク注入の脆弱性がある。また、さまざまなカスタムモジュールおよび拡張(貢献)モジュールにも同様の脆弱性がある。攻撃者は、この脆弱性を利用することで、ユーザーが意図せず外部サイトへと誘導されてしまうよう仕向けることが可能。


    解決方法

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

    • Drupal 8 を使用している場合は Drupal 8.4.5 にアップデートする。
    • Drupal 7 を使用している場合は Drupal 7.57 にアップデートする。


    JSON API

    オンラインの原文: JSON API - Moderately critical - Multiple Vulnerabilities - SA-CONTRIB-2018-015


    概要

    このモジュールを利用すると、JSON API 標準規格に準拠した API を使って Drupal のコンテンツおよびコンフィギュレーション エンティティーに対するアクセスと操作を行うことができる。

    • このモジュールは特定の状況においてキャッシャビリティー メタデータとの関連づけを十分に行わない。そのため、アクセス バイパスの脆弱性が生じる。
      事実として、攻撃者は、この問題を悪用できる状況を自ら作り出すことはできないため、この脆弱性は軽減される。
    • 特定の状況において、このモジュールはアクセスを十分にチェックしない。
      事実として、攻撃者には、特定のコンテンツ エンティティー タイプのエンティティーを作成する権限がなくてはならないため、この脆弱性は軽減される。

    解決方法

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

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