Pretty Links の脆弱性情報

WordPress

Pretty Links v2.1.8 には CSRF 及び XSS の脆弱性があります。

4/25 に報告して 5/1 にひっそりと修正されました。(v2.1.9)

使用している人はすぐに更新してください。

v2.1.8 以前の脆弱性を悪用された場合

更新せずに使用すると自分のサイトだけではなく閲覧者に被害が出る可能性があります。

WordPressのプラグインはGPLライセンスですから閲覧者の被害はプラグインの責任ではなく、プラグインを使用したあなたの責任です。

リダイレクト先の書き換え

CSRFの脆弱性を利用することで本プラグインのメイン機能である短縮URLのリダイレクト先を書き換えることが可能です。

詐欺サイトに書き換えられてしまった場合、閲覧者に被害が出る可能性があります。

管理画面からJavaScriptの実行

CSRFの脆弱性を利用することで様々な設定を書き換えることが可能で、さらにその設定値を表示する際にエスケープ処理がされていないためXSSが発生します。

XSSを利用することで管理画面からのPOSTやクッキーの流出などの被害が発生する可能性があります。

v.2.1.9 でも注意が必要です

Ajax経由のCSRF

見逃しがちなのでしょうがないですが、修正が不十分だったため脆弱性が残っています。

このプラグインを安全に利用するためには

  • 記事の投稿以外はログアウトする
  • 不用意にリンクを踏まない
  • 自分で修正してCSRF対策を行う

などの自衛措置をとる必要があります。

XSS 対策の不備

こちらも修正が不十分だったためXSSが発生します。

このXSSを利用すること対応のあったCSRFを回避してリダイレクト先を書き換えることなどが可能です。

  • 不用意に Pretty Links の設定画面を開かない
  • Pretty Links の設定画面を開く前にDBを直接確認しスクリプトが保存されていないことを確認する

などの自衛措置をとる必要があります。

脆弱性を含むプラグインの特徴

このプラグインも例に漏れずいくつも当てはまります。

  • 未使用の引数の放置
  • 未使用の変数の放置
  • brace ルールの不統一
  • 引数の space ルールの不統一
  • メソッドの命名規則の不統一
  • CSRF対策の不備
  • XSS対策の不備

WordPressのプラグインはプログラミング初心者でも簡単に機能を追加することができますが、たいていの場合非機能要件は無視されます。

プラグインを利用する際は使用する前に一度ソースコードレベルで確認するべきです。

補足

この脆弱性は自作のCSRF検出プラグインによって発見されました。

CSRF検出プラグインを作成しました
GitHub機能SQLの実行 及び nonceのチェック を監視します。nonceのチェック が行われる前に create insert update delete などの SQLコマンドが実行 されたときにログに保存メールで通知処理を停止

コメント

タイトルとURLをコピーしました