ooooooo_qの日記

脆弱性の話とか

RubyやRubyのOSSの脆弱性を見つけた話の続きの続き

この記事はRuby Advent Calendar 2020 - Qiita20日目です。


一昨年(RubyやRubyのOSSの脆弱性を見つけた話 - ooooooo_qの日記)と去年 (RubyやRubyのOSSの脆弱性を見つけた話の続き - ooooooo_qの日記)と同様にRuby関連で今年見つけた脆弱性の話です。

Rails

XSS by file (Active Storage Proxying)

hackerone.com

Rails6.1で導入された機能での脆弱性です。修正されたのが6.1のリリース前だったからかCVEの割当はされていません。Active Storageを使ってS3などに上げた画像をRailsを通して取得できるようにするものでしたが、Content-Disposition: inlineがデフォルトで設定されていたためSVGなどjavascriptが実行できるファイルをアップロードすることでXSSが可能でした。

[CVE-2020-8159] Arbitrary file write/potential remote code execution in actionpack_page-caching

hackerone.com

Rails4でコアから外れたactionpack_page-cachingの脆弱性。キャッシュに使うキーがアクセスで使われたURLをもとにしていて、 ..%2fしてやると意図せぬパスにキャッシュが作れました。

パッチの提案を出していたのですが、clean_pathしただけではキャッシュの外には出ないですが他のキャッシュに上書きできてしまっていたのでだめでしたね。

[CVE-2020-8264] Possible XSS Vulnerability in Action Pack in Development Mode

[CVE-2020-8264] Possible XSS Vulnerability in Action Pack in Development Mode

レポートを書くのに1日かかったとてもややこしいものなのですが、この記事の時点ではまだ詳細が公開されていないので省略

rails-ujs/JQuery-ujs

XSS in some browsers · Issue #517 · rails/jquery-ujs · GitHub

Hackeroneに出したところ、Hackeroneのスタッフにはリポジトリの方に出してと言われたので出したんですがそのままになってます。まあ影響あるのはレアケースですね。

Discourse

github.com またファイルアップロード。ホワイトリストで許可されたタグの中にuseがあり、それを使うとXSSが可能な状態でした。 Cross-Site Scripting (XSS) Cheat Sheet - 2020 Edition | Web Security Academyを見ていて見つけたものです。

今年も順位上がりました。