WordPress pluginのCSRF脆弱性(CVE-2015-0895) "&'<<>\ Advent Calendar 2015 (14日目)

この記事は脆弱性"&'<<>\ Advent Calendar 2015の14日目の記事です。

前日の記事はWordPress のsecurity系plugin の Blind SQL injection 脆弱性(CVE-2015-0894) "&'<<>\ Advent Calendar 2015 (13日目) - ooooooo_qの日記です。今日は連続してCVE-2015-0895です。

脆弱性内容

違うCVEが割り振られていますが、報告したのはCVE-2015-0894と同じpluginで、WordPress › All In One WP Security & Firewall « WordPress Pluginsです。

昨日書いた記事の中で、クエリパラメータを受け取ってDELETE文が発行されている箇所がありますが、その際リクエスト元のチェックなどはされていません。

GETでアクセス時にDELETEが発行されるようなURLが存在していると検索エンジンbotに拾われて、勝手に削除されてしまうなんて話もありますが、この場合はログインが必要なのでそうはなりません。しかし、ログインユーザが以下の様なURLにアクセスしてしまうとテーブルの中身が全部消えてしまいます。

/wp-admin/admin.php?page=aiowpsec_firewall&tab=tab6&action=delete&item[0]=) or 1=1

対象はplugin内で使っているテーブルのみなので、それほど影響は大きくないのですがあまり良くはないですね。