stringio のメソッドに細工した文字列を突っ込むと関係ないメモリを読み取ることができる、という脆弱性について CVE を取得したうえで修正バージョンをリリースした。
https://www.ruby-lang.org/en/news/2024/03/21/buffer-overread-cve-2024-27280/
これ、Ruby 3.0 と 3.1 のみが対応というのは nobu が 3.2 の開発中に直していて「おい、脆弱性なんだから勝手に直すなよ」というのを後追いで CVE を割り当てたという裏話が実はあるのでここに書いておきます。
続いて RDoc がファイルとして書き出しているものを読み込む処理で Marshal したクラスの復元過程でそのオブジェクトの処理を実行できてしまい、結果として RCE になる、という脆弱性について CVE を取得したうえで修正バージョンをリリースした。
https://www.ruby-lang.org/en/news/2024/03/21/rce-rdoc-cve-2024-27281/
これ、最初は X.Y.1 としてリリースしたのだけど、デグレというかパッチにミスがあってテストも通らないくらいぶっ壊れてしまったので、X.Y.1.1 として慌ててリリースし直していた。とにかく辛い。
ここ1-2週間くらいこの2つの CVE 関係の準備をしていたので「仕事したわー」という気分になった。
うちは妻の意向で洗濯にはがんこ本舗という会社の洗剤を使っているのだけど、割と取り扱いの振れ幅が大きくて、ある時期には詰め替えパック1つがいつもは2500円ちょっとのものが3000円になってたりするので、じゃあと 3kg の特大入れ替えパックを買ってしまった。
https://item.rakuten.co.jp/n-raffine/umihe-237509-3kg/
詰替作業はややコツが必要だったけど、超大変というものでもないので今後はこれで良さそう。