WordPress Ultimate Member Plugin の脆弱性 CVE-2024-1071 が FIX:直ちにアップデートを!

WordPress Ultimate Member Plugin Under Active Attack: Critical Flaw (CVE-2024-1071) Impacts 200k Sites

2024/02/25 SecurityOnline — 200,000 以上のアクティブなインストールを誇る、人気の WordPress プラグイン Ultimate Member に、認証を必要としない SQL インジェクションの脆弱性が見つかった。この深刻な脆弱性 CVE-2024-1071 (CVSS:9.8) には、広く採用されている同プラグインを利用している Web サイトに、重大なリスクをもたらす可能性がある。この脆弱性を発見/報告した Christiaan Swiers には、Wordfence Bug Bounty Program Extravaganza から $2,063 の報奨金が支払われた。


新たに発見された脆弱性 CVE-2024-1071 は、Ultimate Member プラグインの 2.1.3〜2.8.2 に存在する。この脆弱性は、プラグインのユーザー・クエリ機能に、特に ‘sorting’ パラメータに関連する不適切な実装に起因している。このパラメータは、SQL クエリのエスケープと準備が不十分なため、認証されていない攻撃者が追加の SQL コマンドを操作/注入するための起点となる。

この脆弱性の悪用に成功した攻撃者は、パスワード・ハッシュを含む、データベースからの機密情報の抽出を実行する可能性を得る。

$order = 'ASC';$sortby = ! empty( $_POST['sorting'] ) ? sanitize_text_field( $_POST['sorting'] ) : $directory_data['sortby'];

脆弱性の核心は、Member_Directory_Meta クラスの ajax_get_members() 関数にある。この関数は、WordPress ユーザーにメンバー・ディレクトリ機能を問い合わせる役割を担っているが、SQL インジェクションに対して ‘sorting’ パラメータを適切に保護できていない。sanitize_text_field() 関数を使用して入力をサニタイズする試みが行われたが、この対策は SQL インジェクション攻撃を阻止するには不十分であった。


最も憂慮すべき点は、SQL クエリに ORDER BY 文を追加する際に、WordPress の wpdb prepare() 関数が存在しないことだ。prepare() 関数とは、WordPress で SQL クエリをパラメータ化して安全に実行するために必要なものであり、SQL インジェクションの脅威に対する防波堤の役割を果たす。

Wordfence は、わずか 24時間で、この脆弱性を狙う 522件の攻撃をブロックしたことを報告しており、この脆弱性がもたらす活発な脅威を強調している。攻撃者たちは、SQL の CASE 文と SLEEP() コマンドを組み合わせた、Time-Based ブラインド・アプローチを活用している。この手法を用いて注入されたコマンドの応答時間を観察することで、攻撃者たちはデータベースの情報を盗み出せるという。

Wordfence は、この脆弱性が発見された後の 2024年1月30日に、Ultimate Member team に速やかに通知を行った。そして、開発者たちの迅速な対応と協力により、2024年2月19日にパッチがリリースされた。更新された Ultimate Member プラグイン 2.8.3 は、この重大な脆弱性に対処し、修正するものである。

Ultimate Member プラグインを Web サイトに使用している場合は、最新バージョンである 2.8.3 へのアップデートを強く推奨する。