事例: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
#事例