記事

jQueryの脆弱性を確認する方法|対象バージョン・CVE・更新時の注意点

jQueryの脆弱性を確認する方法|対象バージョン・CVE・更新時の注意点
自社サイトで使うjQueryのバージョンと、既知の脆弱性を確かめる方法を解説します。CVE-2020-11022・11023の対象範囲を整理します。更新時の動作確認から対応後の再確認まで、担当者に依頼する際の要点を紹介します。
目次

診断結果でjQueryの脆弱性を指摘され、「自社サイトは大丈夫か」と迷うことがあります。CVE(公表された脆弱性に付く共通の番号)と使用中の版が、確認の手掛かりです。まず使用中の版を確かめ、公表されている脆弱性の対象かどうかを照らし合わせます。対象の版でも、攻撃できる状態とは限りません。

この記事の結論
  • ① まず、自社サイトのjQueryのバージョンを確かめます。ブラウザの開発者ツール(ページの中身を調べる機能)で確認できます。表示されない場合の確認先は、制作・保守の担当者です。
  • ② CVE-2020-11022・11023は、2020年4月の3.5.0で初めて修正されました。対象は3.5.0より前ですが、下限はCVEごとに異なります。対象の版でも、攻撃できる状態とは限りません。
  • ③ 更新は、制作・保守の担当者が動作を確かめながら行います。Web担当者は、更新後のバージョンをもう一度確認してください。

出典:jQueryの勧告(CVE-2020-11022)、jQueryの勧告(CVE-2020-11023)

jQueryの脆弱性とは?まず確認すべきこと

jQueryの脆弱性を指摘されたら、まず使用中のバージョン(版)を確認します。古い版には既知の脆弱性があり、問題が起こる条件も確かめる必要があります。

jQueryとは

JavaScriptは、Webページの動きを作るための言語です。jQueryは、JavaScriptで動きを作るときに使うライブラリ(よく使う処理をまとめたプログラム)です。

jQueryの脆弱性には、特定の使い方で意図しないコードが動く問題があります。版番号を調べたうえで、自社サイトの使い方に影響があるかを担当者に確認してもらいます。

古い版が残りやすい理由

テーマ(サイトの見た目を決める仕組み)に、jQueryが含まれることがあります。プラグイン(機能を追加する部品)や外部ツールに含まれる場合もあります。

そのため、確認する対象はサイト本体だけではありません。制作・保守の担当者には、どの仕組みがjQueryを読み込むかも確認してもらいます。

既知の脆弱性はCVE番号と公式の案内で調べます

診断レポートにCVE番号があれば、jQueryの勧告(開発元が公表する脆弱性の案内)やCVEの記録と照合します。確認するのは、対象の版、問題が起こる条件、修正された版です。

番号と使用中の版をそろえておくと、担当者へ調べてほしい内容を伝えやすくなります。

自社サイトのjQueryのバージョンを確認する方法

jQueryのバージョンは、ブラウザの開発者ツールで確認できます。表示されない場合や複数の版が疑われる場合は、制作・保守の担当者に確認を依頼してください。

開発者ツールのコンソールで確かめます

コンソール(コードを入力して実行する欄)で、版番号を調べます。画面や機能の名前は、ブラウザや版によって異なる場合があります。

  1. 確認したい自社サイトのページを、ブラウザで開いてください。
  2. 開発者ツールを開き、コンソールの欄を選んでください。
  3. jQuery.fn.jquery を入力して、実行してください。
  4. 表示された版番号を、確認したページのURLと一緒に控えてください。

出典:jQuery API「.jquery」

版が表示されなくても、この結果だけでjQueryを使っていないとは判断できません。

ファイルのバージョン表記も確かめます

jQueryのファイル名や、先頭のコメント(プログラム中の説明文)に版が書かれている場合があります。必ず記載があるとは限りません。

出典:jQueryの公式配布ファイル

同じページで複数の版を読み込んでいないか確かめます

1つのページで、複数の版を読み込んでいる場合もあります。コンソールで表示される版は1つだけです。ほかの版のファイルが読み込まれていないかは、担当者に読み込み元を確認してもらいます。開発者ツールで確かめる範囲も、開いたページごとです。

開発者ツールの確認を補う方法として、SiteScanがあります。SiteScanは、ブラウザ側で読み込まれるJavaScriptや外部ツールを一覧にします。タグ(サイトに設置するコード)も対象です。

ライブラリの版を、既知の脆弱性情報と照合します。照合の結果だけでは、攻撃できる状態かどうかは判断できません。実際に攻撃や侵害があったかどうかも判断できません。

ログインが必要なページや非公開ページには、SiteScanのタグ設置が必要です。GTM(Googleタグマネージャー。サイトのタグをまとめて管理するGoogleのツール)経由で設置します。

\使用中のjQueryのバージョンを確認/ 外部タグ監視ツール
SiteScan
製品の特長を知る

CVE-2020-11022・11023の対象範囲と内容

この2件が修正された版は、どちらも3.5.0です。対象の下限と、問題になるHTML(ページの内容を表すコード)の条件は、2件で異なります。

表の .html()・.append() は、ページの内容を書き換えるjQueryの機能です。「信頼できないHTML」は、利用者の入力や外部から受け取った内容など、安全か確かめていないHTMLを指します。

3.5.0以降では、この2件は修正されています。ただし、後述の旧来の処理に戻すと、セキュリティ修正を失います。たとえば1.12.4・2.2.4・3.4.1は、どちらの範囲にも入ります。1系・2系はサポートが終わっているため、新しい系統への更新が必要です。

CVE番号 対象のバージョン 内容 修正された版
CVE-2020-110223.5.0より前です。下限は、jQueryの勧告で1.2以上です。CVEの記録・GitHubのデータベース・Retire.jsでは1.12.0以上です。信頼できないHTMLを .html() などに渡すと、意図しないコードが動くおそれがあります。危険な記述を取り除く処理の後でも、問題が起こる場合があります。3.5.0(2020年4月)
CVE-2020-110231.0.3以上、3.5.0より前です。選択肢を表す <option> 要素を含むHTMLが関係する脆弱性です。信頼できないHTMLを .html() や .append() などに渡すと、意図しないコードが動くおそれがあります。危険な記述を取り除く処理の後でも起こる場合があります。3.5.0(2020年4月)

出典:jQueryの勧告(CVE-2020-11022)、CVE-2020-11022の記録、jQueryの勧告(CVE-2020-11023)

CVE-2020-11022は、資料によって対象の下限が異なります

GitHubの脆弱性データベースと、Retire.jsも、対象の下限を1.12.0以上としています。jQueryの勧告とは下限が異なるため、資料ごとの範囲を分けて確認する必要があります。

1.2以上1.12.0より前の版は、CVE-2020-11022の対象かどうかが資料で分かれます。ただし、どの資料でもCVE-2020-11023の対象には入ります。

出典:GitHub Advisory Database(CVE-2020-11022)、Retire.jsの脆弱性情報

CVE-2020-11023は、悪用が確認されています

CVE-2020-11023は、米国CISAの「悪用が確認された脆弱性」の一覧に載っています。追加日は2025年1月23日です。CVE-2020-11022は、2026年10月26日の確認時点でこの一覧に載っていません。ただし、一覧に無いことは、悪用されていない根拠にはなりません。

出典:CISA「Known Exploited Vulnerabilities Catalog」

対象の版でも、直ちに被害が出るとは限りません

対象の版を使っていることと、攻撃できる状態であることは別です。版番号だけで、自社サイトに被害が出ているとは判断できません。

担当者には、信頼できないHTMLを扱う箇所があるか確認してもらいます。あわせて、そのHTMLを .html() や .append() などの機能に渡していないかも調べてもらいます。

そのほかの既知の脆弱性も確認します

jQueryには、CVE-2019-11358やCVE-2015-9251などもあります。CVE-2020-11022・11023の確認だけで終えず、利用中の版に関するほかの記録も担当者に照合してもらいます。

出典:CVE-2019-11358の記録、CVE-2015-9251の記録

【関連記事】JavaScriptの脆弱性対策【完全ガイド2025】原因から診断、セキュアコーディング実践まで

脆弱性の直し方と、更新するときの注意点

基本となる対応は、修正された版以降への更新です。制作・保守の担当者が、公式の案内と動作確認を基に更新先を決めます。

修正された版以降へ更新します

3.5.0は、CVE-2020-11022・11023が初めて修正された2020年4月の版です。ただし、今の更新先として3.5.0を勧めるものではありません。

出典:jQuery公式ブログ「jQuery 3.5.0 Released!」

jQueryの開発元は、最新版だけをサポートの対象としています。3系には重大なセキュリティ修正とバグ修正だけを提供し、4系の最新版への更新を勧めています。最新の系統は4系で、4.0.0が2026年1月に公開されています。

担当者は、現在のサイトとの互換性(更新後も必要な機能が動くこと)を確かめてから、更新先を決めます。

出典:jQueryのサポート方針、jQueryのリリース一覧

すぐに更新できない場合は、現在の資料で対応を判断します

古い勧告にある回避策を、そのまま使えるとは限りません。制作・保守の担当者に、現在の資料を確認してもらいます。

CVE-2020-11023の勧告には、DOMPurifyを使う回避策があります。DOMPurifyは、HTMLの危険な記述を取り除くツールです。勧告に登場する設定 SAFE_FOR_JQUERY は、2.1.0で削除されています。

出典:DOMPurifyの削除済み設定

jQuery.htmlPrefilter は、HTMLを挿入する前に処理する機能です。CVE-2020-11022の勧告には、入力をそのまま返す形にする回避策があります。この回避策には、1.12/2.2以上が必要です。一方、旧来の書き換え処理に戻すと、3.5.0のセキュリティ修正を失います。旧来の処理に戻す方法は、脆弱性への対策としては勧めません。

出典:jQuery 3.5アップグレードガイド

更新で変わる動きとjQuery Migrateを確認します

3.5.0では、セキュリティ修正のためにHTMLの扱いが変わりました。古い書き方を前提とする部分は、更新後に動かなくなる場合があります。

出典:jQuery 3.5.0のリリースノート

更新作業の補助には、jQuery Migrateというプラグインを使えます。開発版(開発やテストで使う版)は、削除された機能や非推奨の書き方を見つけると、コンソールに警告を出します。

本番用の版では、この警告は出ません。

出典:jQuery Migrateの公式README

テスト環境でフォームや計測タグを確認します

制作・保守の担当者は、テスト環境(公開中のサイトに影響させずに試す環境)で更新します。フォームやスライダー(画像などを切り替える表示)、計測タグの動きを確認します。計測タグは、アクセス解析や広告の成果を計測するコードです。

Web担当者も、普段使っているフォームや重要なページを担当者に伝えてください。動作を確かめた後に、担当者が本番へ反映します。

依頼する作業と担当を分けます

Web担当者は、使用中の版と診断レポートをそろえます。対象の判断や更新作業は、制作・保守の担当者に依頼してください。

作業 担当
使っている版を確かめ、一覧にしますWeb担当者
対象かどうかを判断し、更新先を決めます制作・保守の担当者
テスト環境で更新し、動きを確かめます制作・保守の担当者
公開中のサイトに反映します制作・保守の担当者
更新後に版をもう一度確かめますWeb担当者(制作・保守の担当者と一緒に)
jQueryの脆弱性に対応する流れと、Web担当者と制作・保守の担当者の分担を示した図(版の確認→対象の判断と更新先の決定→テスト環境での更新→本番への反映→版の再確認)

対応後の再確認と、その後の変更を確認する方法

更新後は、版をもう一度確認します。テーマやプラグイン、外部ツールの更新で、古い版を読み込み直すことがあるためです。

更新後のバージョンを再確認します

本番への反映後は、前述の方法で版を調べます。

  1. 更新したページを開き、開発者ツールで版を確かめます。
  2. 依頼した更新先の版と一致するかを、制作・保守の担当者と確認してください。
  3. 古い版や別の版が残っていないかも確認します。

バージョンの履歴と変更を継続して確認します

SiteScanは、スクリプトのバージョン履歴を管理し、変更を継続して監視します。更新後に古い版が読み込まれ直した場合も、その変更を履歴で確認できます。

この記録は、現状を把握し、制作・保守の担当者に再確認を頼むための材料です。

SiteScanは、攻撃のブロックやコードの自動修正・自動更新を行いません。サーバー側や、自社で書いたコードの脆弱性診断も対象外です。修正・更新は、制作・保守の担当者が行います。

jQueryに限らず、サイト全体の脆弱性の見つけ方は次の記事で扱っています。

【関連記事】脆弱性診断のやり方が分かる!初心者でも自分でできる5つのステップを徹底解説

まとめ

jQueryの脆弱性への対応は、使用中の版とCVEの対象範囲を確かめることから始めます。対象の版を見つけたら、制作・保守の担当者に影響の判断と更新を依頼してください。

担当者がテストと本番への反映を行い、Web担当者は更新後の版を再確認します。その後も、古い版が戻っていないかを継続して確かめます。

\更新後のバージョンも確かめる/ 外部タグ監視ツール
SiteScan
機能の詳細を見る

よくある質問

Q1. 自社サイトのjQueryのバージョンは、どうやって確認しますか?

ブラウザの開発者ツール(ページの中身を調べる機能)で確認します。コンソール(コードを入力して実行する欄)でバージョンを調べます。ファイルにバージョンの記載があれば、そちらも確認してください。表示されない場合や複数の版が疑われる場合は、制作・保守の担当者に確認を依頼してください。

Q2. jQueryを3.5.0にすれば安全ですか?

3.5.0にすれば安全、とは限りません。3.5.0は、CVE-2020-11022・11023に対応した2020年4月の修正版です。jQueryの開発元がサポートの対象にしているのは最新版です。3系には、重大なセキュリティ修正とバグ修正だけが提供されます。開発元は、4系の最新版への更新を勧めています。更新先は、制作・保守の担当者が今の公式の案内を見て決めてください。

Q3. 古いjQueryを使っていると、すぐに被害が出ますか?

古い版を使っているだけで、直ちに被害が出るとは限りません。CVE-2020-11022・11023では、HTMLの扱い方が関係します。信頼できないHTMLを特定の機能に渡すと、問題が起こるおそれがあります。自社サイトでの影響は、制作・保守の担当者に確認を依頼してください。

Q4. jQueryを更新すると、サイトの表示や動きが変わることはありますか?

変わることがあります。3.5.0ではHTMLの扱いが変わったため、古い書き方に頼った部分が動かなくなる場合があります。テスト環境でフォームや計測タグなどの動きを確かめてから、本番に反映してください。

Q5. SiteScanで、jQueryのバージョンを確認できますか?

ブラウザで読み込まれるライブラリ(よく使う処理をまとめたプログラム)であれば、SiteScanの一覧で確認できます。SiteScanは、ブラウザで読み込まれるJavaScriptを一覧にする製品です。ライブラリのバージョンを、既知の脆弱性情報と照合します。更新や修正は行わないため、対応は制作・保守の担当者に依頼してください。

No items found.
サイバーセキュリティ