
CVE-2023-22432 (web2py) の PoC
web2py の脆弱性(CVE-2023-22432)が2023年1月31日(米国時間)に公開されました。この記事では、この脆弱性に関する検討と検証結果について説明します。
この脆弱性は、web2pyのオープンリダイレクト脆弱性であり、管理ページのURLにおいてコールバック先URLとして任意のURLを指定できます。もともとオープンリダイレクト対策は実装されていましたが、URLに特別なバイパス手法を適用することで再現されます。これにより、悪意のあるサイトに誘導される可能性があります。
2022年にweb2pyでオープンリダイレクト脆弱性(CVE-2022-33146)が発見されました。我々はCVE-2022-33146のような他の脆弱性がないか気になり、web2pyのソースコードを確認したところ、オープンリダイレクト防止を回避する方法を見つけました。Aeye Security Labの Takuto Yoshikai(著者)がこの問題をIPAおよびweb2py開発チームに報告しました。
このリポジトリのbuild.shを実行すると、web2pyが起動します。
bash build.sh
http://localhost:8000/admin/default/index/?send=//example.com にアクセスします。

パスワード "password123" を入力し、Loginをクリックします。

example.comにリダイレクトされなかったため、オープンリダイレクト防止は正常に機能しました。
http://localhost:8000/admin/default/index/?send=\/\/example.com にアクセスします。
ペイロードは \/\/example.com です。

パスワード "password123" を入力し、Loginをクリックします。

example.comにリダイレクトされたため、オープンリダイレクト防止は正しく機能しませんでした。
調査と検証の結果、管理ページのURLを細工することで管理者を悪意のあるウェブサイトに誘導できることを確認しました。システムをできるだけ早く更新することをお勧めします。