Ruby on Rails のバージョンアップで情報漏えい ~ Kaigi on Rails 2025 出題クイズ解説 | ScanNetSecurity
2025.11.09(日)

Ruby on Rails のバージョンアップで情報漏えい ~ Kaigi on Rails 2025 出題クイズ解説

 GMO Flatt Security株式会社は10月3日、同社の「Kaigi on Rails 2025」出展ブースで出題したクイズについての解説記事を同社ブログで発表した。同社の大崎氏が執筆している。

脆弱性と脅威
Rails セキュアコーディングクイズ

 GMO Flatt Security株式会社は10月3日、同社の「Kaigi on Rails 2025」出展ブースで出題したクイズについての解説記事を同社ブログで発表した。同社の大崎氏が執筆している。

 同記事では、大崎氏が作問・出題した、実際に HackerOne に報告された脆弱性を元ネタとしたクイズについて解説している。

 Ruby on Rails をバージョンアップした際に、Hash を JSON に変換する挙動が変わったことが原因でユーザー情報が漏えいしており、さらに「なぜユニットテストで検知できなかったのか」についてもレポートが公開されている。大崎氏は、同レポートを題材にクイズを作問している。

 出題されたのは「次のコードを、Rails 7で実行すると、/users/:id のレスポンスはどのようなJSONになるでしょうか? (Ruby 3.3.1)」という問題で、下記4つの選択肢からの選択となる。

1.{"user":{"id":1,"name":"Takumi","secret":"SECRET"}}
2.{"user":{"id":1,"name":"Takumi"}}
3.{"user":{"id":1,"name":"Takumi","secret":"SECRET"}, "user":{"id":1,"name":"Takumi"}}
4.エラーになる

 解説によると、Ruby on Rails 6.1 までは Hash を JSON に変換する際、シンボルキーは文字列キーと同一視されており、同じ名前のキーが複数存在する場合は後から追加されたキーで上書きされていたため、この場合の正解は 2.となるが、Ruby on Rails 7.1 では、シンボルキーと文字列キーを別のキーとして扱う仕様に変更されたため、両方のキーがそのまま JSON に出力されるようになったため、正解は 3. になるとのこと。

《ScanNetSecurity》

関連記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 永世名誉編集長 りく)

×