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検出プラグインによって発見されました。

コメント