WebConsole::Middleware
web-consoleのgemを読み込んでいると利用できる
https://github.com/rails/web-console/blob/v4.2.1/lib/web_console/middleware.rb
開発時に利用する
/__web_console のパスにマウントされる
https://github.com/rails/web-console/blob/v4.2.1/lib/web_console/middleware.rb#L9C5
危険性
ブラウザ上からのREPLとして、rubyのコードを実行するリクエストが送信できる機能がある
https://github.com/rails/web-console/blob/v4.2.1/lib/web_console/middleware.rb#L101
おそらくCSRF対策としてajaxのリクエストのみ(=カスタムヘッダが付いたリクエスト)を受け付けている
request.xhr?による確認
https://github.com/rails/web-console/blob/v4.2.1/lib/web_console/middleware.rb#L90
ローカルホストのIPアドレスからの送信のみを受け付ける
https://github.com/rails/web-console/blob/v4.2.1/lib/web_console/permissions.rb#L8
ActionDispatch::HostAuthorizationが導入される前は、DNS rebindingによる攻撃でRCEが可能だった
Rails 6にDNSリバインディング攻撃防止機能が追加された(翻訳)
現在でもReflected XSSなどがあった場合にはRCEが可能
事例:CVE-2020-8264 Possible XSS Vulnerability in Action Pack in Development Mode#653b90d85515cd00008cc5ee で利用された