今朝、ThemeForest から WordPress のプラグインやテーマに関するクロスサイトスクリプティング(XSS)の脆弱性に関するメールが来ていたので、調べたら以前メモしたプラグイン(My Calendar)も含まれていた。
追加情報
WordPress は7日、重要なセキュリティアップデートとして「WordPress 4.2.2」を公開しています。以下「WordPress 4.2.2 セキュリティリリース」より抜粋。(2015年5月9日)
WordPress 4.2.2が利用可能になりました。これは以前のすべてのバージョンに対する重大なセキュリティリリースですので、ただちにサイトを更新することを強く推奨します。
バージョン4.2.2では二つのセキュリティの問題を解決しました:
- 数多くの人気テーマやプラグインで使用されているGenericonsアイコンフォントのパッケージはクロスサイトスクリプティングの攻撃に脆弱なHTMLファイルを含んでいました。・・・
- WordPressのバージョン4.2とそれ以前は匿名のユーザがサイトを危険にさらすことが可能な重大なクロスサイトスクリプティングの脆弱性の影響を受けます。・・・
このリリースはビジュアル・エディターを使用している場合の潜在的なクロスサイト・スクリプティングの脆弱性への強化も含みます。
関連リンク:「WordPress」のデフォルト環境にXSSの脆弱性/japan.zdnet.com
追加情報
WordPress 4.2 以前に深刻なクロスサイトスクリプティング(XSS)の脆弱性が見つかったとのこと。以下「WordPress 4.2.1 セキュリティリリース」より抜粋。(2015年4月30日)
WordPress 4.2.1が利用可能になりました。これは以前のすべてのバージョンに対する重大なセキュリティリリースですので、ただちにサイトを更新することを強く推奨します。
数時間前、WordPressチームはコメントの投稿者がサイトを危険にさらすことが可能なクロスサイトスクリプティングの脆弱性に気が付きました。この脆弱性はJouko Pynnonenによって発見されました。
関連リンク:WordPress 4.2以前にXSSの脆弱性、速やかなアップデートを呼び掛け/@IT
目次
以下の WordPress プラグインにクロスサイトスクリプティング(XSS)の脆弱性が指摘されている。
プラグインを最新版にアップデート(更新)する。(アップデートの際には、バックアップをお忘れなく。)
また、今回指摘されているプラグイン以外にもおそらく多数のプラグインやテーマで、問題の関数が使用されている可能性があるので、プラグインを使用している場合は、こまめにアップデートする。
add_query_arg() と remove_query_arg() 関数を独自のテーマや関数で使用している場合は、適切にエスケープ処理する。
紹介されていたサイトからの一部(冒頭の)抜粋
Security Advisory: XSS Vulnerability Affecting Multiple WordPress Plugins
By Daniel Cid on April 20, 2015 .
Multiple WordPress Plugins are vulnerable to Cross-site Scripting (XSS) due to the misuse of the add_query_arg() and remove_query_arg() functions. These are popular functions used by developers to modify and add query strings to URLs within WordPress.
プラグインの開発でよく使われる add_query_arg() と remove_query_arg() 関数の誤った使い方により、複数のポピュラーなプラグインでクロスサイトスクリプティング(XSS)の脆弱性が見つかったというような内容。
XSS Vulnerability Affects More Than a Dozen Popular WordPress Plugins
Jeff Chandler April 20, 2015
For the past week, security firm Sucuri has worked with the WordPress core security team to address a cross site scripting vulnerability discovered in more than a dozen popular WordPress plugins. The vulnerability stems from the improper use of the add_query_arg() and remove_query_arg() functions. Inaccurate information within the WordPress Codex lead many developers to assume these functions would properly escape user input.
前述同様、add_query_arg() と remove_query_arg() 関数の誤った使い方により、12(ダズン)以上のポピュラーなプラグインでクロスサイトスクリプティング(XSS)の脆弱性が見つかったということと、これは WordPress Codex の不正確な情報のため、プラグイン制作者が、これらの関数を使用する際にユーザーのインプットを適切にエスケープされていると勘違いしていることに起因しているというような内容。
現在のところ実際の被害は見つかっていないようだが、早めに対策(プラグインの最新版への更新)が必要。
add_query_arg() と remove_query_arg() 関数は URL をエスケープしないので、出力する際はエスケープ処理する必要がある。プラグインに限らず、独自のテーマや関数を作成・使用している場合もこれらの関数を使っている場合、適切に処理しているかを確認しておくと良い。具体的にはこれらの関数の出力を esc_url() (または esc_url_raw()) を使ってエスケープする。詳細は以下を参照。