多分野にわたる専門家チームは、クライアントと密に連携し、現場の声を力強いメッセージへと変換します。子どもの保護やGBV、気候変動からビジネスと人権まで、多様な分野で政策を動かし、具体的なアクションを呼び起こす資料を構築します。 前のブログ Booklyプラグイン(WordPressオンライン予約・スケジュール管理プラグイン – Bookly)のXSS脆弱性を調査しました。本日は、同じプラグインの調査中に明らかになった別のXSS脆弱性について詳しく説明します。
この脆弱性は2023年2023月に発見されました。発見後、速やかに責任ある開示手続きを開始し、脆弱性が速やかに対処されるよう努めています。この脆弱性に割り当てられたCVE識別子はCVE-1159-2023で、XNUMX年XNUMX月に修正が完了しました。
このブログ記事では、Booklyプラグインで発見された脆弱性の根本原因を包括的に分析します。さらに、この問題を効果的に軽減するためにリリースされたパッチについても検証します。
分析する CVE–2023-1159 – サービス経由の認証済み(管理者+)保存型クロスサイトスクリプティング タイトル:
調査の結果、Booklyプラグインの「サービスタイトル」フィールドに関連する脆弱性が確認されました。この脆弱性により、入力サニタイズ対策が不十分なため、プラグインは保存型クロスサイトスクリプティング(XSS)攻撃を受ける可能性があります。管理者はプラグインインターフェースから直接タイトルを編集または設定できることにご注意ください。
さらに調査を進めた結果、サービス内に悪意のあるタイトルが設定された場合、クライアントが当該サービスにアクセスした際に、クライアントのブラウザ上で、そのタイトルが認識も同意もないままレンダリング・実行されることが判明しました。この実行により、リモートコード実行が可能になる可能性があり、重大なセキュリティリスクをもたらします。
より正確な理解のために、次のコード スニペットは、新しいサービスを作成するときに「サービス タイトル」フィールドの値がどのように設定および読み取られるかを示しています。

図 1. 新しいサービスが作成されるときに呼び出される createService メソッド。
次に、「createService」は「parameters」メソッドを呼び出します。

図2はパラメータメソッドを示しています。
'parameters'メソッド内では、'getRequest()'関数が呼び出されています。この関数は、インターフェースから入力された値を取得する役割を担っています。その後、これらの値は'createService'メソッドに渡され、保存されます。ただし、このプロセスでは入力データのサニタイズが行われないため、システムが潜在的なセキュリティリスクにさらされる可能性があることに注意することが重要です。

図3はgetRequestメソッドを示しています。
修正プログラムの公開:パッチの調査
脆弱性を解決するパッチを調査した結果、$parameters変数が適切にサニタイズされ、プログラム内での潜在的なセキュリティ侵害を効果的に防止していることが判明しました。この注目すべき機能強化には、$parametersのサニタイズと潜在的な攻撃の軽減に不可欠な「unfiltered_html」関数と「stripScripts」メソッドの実装が含まれます。
このパッチは、「unfiltered_html」関数を利用することで、必要な権限を持つ承認済みユーザーのみがフィルタリングされていないHTMLコンテンツを送信できるようにします。これにより、悪意のあるスクリプトの侵入を防ぎ、クロスサイトスクリプティング(XSS)攻撃のリスクを大幅に軽減します。「stripScripts」メソッドは、$parameters内に埋め込まれたJavaScriptコードを削除または無効化することで、サニタイズプロセスをさらに強化します。
全体として、この包括的なサニタイズアプローチにより、$parameters 変数がコードベース全体で安全に使用できることが保証され、セキュリティの脆弱性の可能性が最小限に抑えられ、プログラム全体のセキュリティが強化されます。

図4. パッチを示す。
結論
このブログ記事では、Booklyプラグインで発見された脆弱性について検証しました。この脆弱性により、認証された攻撃者が有害なスクリプトを挿入することができ、ユーザーのデバイスに脅威を与える可能性がありました。幸いなことに、この脆弱性はバージョン21.8で修正されています。WordPressサイトの所有者の皆様には、潜在的な攻撃を軽減するために不可欠な最新バージョンのプラグインに速やかにアップデートすることをお勧めします。アップデートとパッチをタイムリーに適用することは、安全なオンラインプレゼンスを維持するために不可欠です。また、ユーザーロールに「unfiltered_html」権限を付与する際には、この機能の潜在的なセキュリティへの影響を考慮し、本当に必要とする信頼できるユーザーのみに割り当てるようにしてください。
すべての SEQRITE および Quick Heal のお客様は、次のシグネチャを通じて、この脆弱性を狙ったあらゆる攻撃から保護されています。
- HTTP/CVE-2023-1159!VK.47550
- HTTP/CVE-2023-1159!VK.47551
- HTTP/CVE-2023-1159!VK.47552
共著者:
アンジャリ・ラージクマール・ラウト



