事例:bundler-auditでのYAML.load
bundler-audit
での
デシリアライズ
の問題
https://github.com/rubysec/bundler-audit/pull/296
問題
ruby-advisory-db
のデータは
YAML
ファイルで管理されていて、bundler-auditで読み込む際には
YAML.load_file
が使われていた
リポジトリ側のYAMLファイルに細工され場合、bundler-audit側で読みこんだ際に
RCE
があり得た
私見
bundler-auditがサーバ上で利用されることは稀と思われるが、
CI
で利用されていることも多いのでそちらが狙われる危険性はあった
その後、Ruby2.5(Psych < 3.1.0)で動かなかったので修正されている
https://github.com/rubysec/bundler-audit/commit/8a3a1972f916d1487004014410d1b9c52c9e3f2a
https://github.com/rubysec/bundler-audit/issues/319
#事例