Skip to main content

全ウェブサイトの84%がjQueryのXSS脆弱性の影響を受ける

著者
JavaScript Report feature

2019年10月30日

0 分で読めます

Snykの「JavaScriptフレームワークのセキュリティ状況レポート 2019」へようこそ。このブログでは、フロントエンドエコシステムの他のプロジェクトで見つかったセキュリティ脆弱性を紹介します。

主要なJavaScriptフレームワークであるAngularとReactを確認した後、Vue.js、jQuery、Bootstrapなど、厳選したJavaScriptおよびCSSフレームワークを簡単に見ていきます。

レポートはこちらからダウンロード!

jQueryのセキュリティ

jQueryは10年前にウェブ開発を席巻しましたが、その後、AngularやReactなどのシングルページアプリケーション技術によって、ウェブ開発はさらに進化しました。それでも、ウェブ技術の利用状況を定期的に調査・報告しているW3Techsによると、2019年8月に調査したウェブサイトの73%でjQueryが使用されています。

2017年のSnykの調査でもこの状況が浮き彫りになりました。サイトの77%で、少なくとも1つの脆弱なJavaScriptライブラリが使用されていると報告され、Alexaの上位5,000件のURLの79%でjQueryが検出されたことも指摘しています。まだ納得できない方もいるかもしれませんが、過去12か月間だけで、npmのjQueryモジュールは120,641,977回ダウンロードされています。

これまでにリリースされたすべてのjQueryバージョンを対象に、合計6件のセキュリティ脆弱性を確認しました。そのうち4件は中 severity のクロスサイトスクリプティング、1件は中 severity のプロトタイプ汚染、最後の1件は低 severity のサービス拒否脆弱性です。2019年4月10日にリリースされたばかりのjQuery 3.4.0以降を使用していない場合、脆弱なバージョンのjQueryを使用していることになります。

バージョン別のjQueryの脆弱性件数を示すドーナツグラフ:jQuery 1.xが54%、2.xが17%、3.xが29%。

jQueryはレガシーコンポーネントとしてウェブアプリケーションで使われていることが多いため、バージョンの利用傾向とセキュリティ状況を把握することも重要です。

W3Techsの報告によると、jQueryを使用しているウェブサイトのうち、1.x系が83.4%を占め、バージョン2と3は大きく後れを取り、それぞれjQuery利用全体の約8%にとどまります。既知のセキュリティ脆弱性をjQueryのバージョンに対応付けたところ、中 severity のクロスサイトスクリプティング脆弱性4件がjQuery v1に影響していることがわかりました。オープンソースコンポーネントの脆弱性を見つけて修正するためにソフトウェア構成分析を導入していない場合、83.4%という市場シェアを考えると懸念すべき状況です。

多くのウェブサイトやウェブアプリケーションでは、jQueryの機能を拡張するためにjQueryライブラリも利用されており、そのためにコミュニティ提供のライブラリが使われることもあります。

次の表に示すように、脆弱性のあるjQueryライブラリを13件確認しました。以下に主な点をまとめます。

  • jQueryライブラリのうち3つは、オープンソースコミュニティのモジュールを装った悪意のあるバージョンです。脆弱なバージョンのダウンロード数はnpmレジストリから確認できないため、実際のダウンロード数は算出できませんが、悪意のあるパッケージであるjquery.jsは、過去12か月間に5,444回ダウンロードされたことを特記しておきます。

  • jQueryライブラリのjquery-mobile、jquery-file-upload、jquery-colorboxは、任意のコード実行やクロスサイトスクリプティングの脆弱性を含み、修正のためのアップグレード手段もないにもかかわらず、過去12か月間に合計340,000回以上ダウンロードされています。

jQueryライブラリ名

脆弱性の種類

公開日

脆弱性の深刻度

年間モジュールダウンロード数

修正あり?

悪意のあるパッケージ

2019-08-06

高

322

該当なし

クロスサイトスクリプティング

2019-07-03

中

17,898

✅

悪意のあるパッケージ

2019-06-07

高

232

該当なし

クロスサイトスクリプティング

2019-05-04

中

54,991

❌

任意コード実行

2018-11-02

低

19,442

❌

クロスサイトスクリプティング

2018-08-19

中

79,982

✅

正規表現によるサービス拒否(ReDoS)

2018-02-13

高

3,069

✅

クロスサイトスクリプティング

2017-11-14

中

268,513

❌

悪意のあるパッケージ

2017-08-02

高

5,444

該当なし

クロスサイトスクリプティング

2016-07-21

高

8,934,683

✅

クロスサイトリクエストフォージェリ(CSRF)

2015-06-24

中

5,763,710

✅

クロスサイトスクリプティング

2013-04-18

中

1,831,735

✅

クロスサイトリクエストフォージェリ(CSRF)

2012-11-26

中

8,934,683

✅

クロスサイトスクリプティング

2012-08-01

中

54,991

✅

クロスサイトスクリプティング

2010-09-02

中

8,934,683

✅

*悪意のあるパッケージには修正情報がありません。


レポートはこちらからダウンロード

レポートの完全版はデジタル形式でのダウンロードを強くおすすめしますが、以下の一般的なセクションもブログ記事として公開しています。

Capture the Flagを始めよう

オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。