ハロウィーンに沸いた昨晩、自動アップデートがオンになっていた方は WordPress 4.8.3 の通知がたくさん飛んで来ていただろう。今回のアップデートは $wpdb
に関するセキュリティパッチである。
自動アップデートにしていない人は急いで更新を。
脆弱性の詳細
今回は報告者である Anthony Ferrara がパッチ公開後すぐに詳細を “Disclosure: WordPress WPDB SQL Injection – Technical” として公表している。
Two blog posts are live related to WordPress 4.8.3. Technical details: https://t.co/EyRtu2Ptxi and background: https://t.co/1PaS0wVKjT
— Anthony Ferrara (@ircmaxell) October 31, 2017
このSQLインジェクション脆弱性はいまのところコアに影響を与えないようだが、$wpdb->prepare
メソッドの不備によって、意図しないインジェクションが発生してしまうようだ。
具体的には、プレースホルダーが順番に置換される vsprintf
の性質を利用し、置換結果にプレースホルダーを再度挿入することでSQLiを発生させる。
これだけ書かれると「なんのこっちゃ」かもしれないが、ざっくりまとめると、以下のとおり。
- WordPress 4.8.3より前のすべてのバージョンにはSQLインジェクション脆弱性があったから、すぐにアップデートしよう。
- WordPressコアはこのSQL脆弱性の影響を受けないけれど、プラグインによっては影響を受けるかもしれない。
- 自動アップデートは有効にしよう。