山口です。 先程セーフレベル4関係のパッチは今後もこのMLに送りますと書きましたが、 卜部さんのご意見を参考にしますと自粛した方が良さそうのなので 一応やめておくことにします。 ただしセーフレベル4関係のパッチが現在手元に5つ程ありますので、 これらは全て自分では程度の判断をせずにセキュリティーチームに送ります。 正直相当どうでもいいと思えるものがほとんどですが、 卜部さんのご意見に従いましてチームの皆様の判断に任せます。 お手数を煩わせることになるかと思いますがどうぞよろしくお願い致します。 なお、 >> |まつもとさんの中で有史以来Rubyの諸機能のうちで安全性の保証を*つけた*例が >> |あるのなら、その件に関して詳しく例示していただきたいですね。 >> >> いや、ないですね。が、セーフレベル4はより積極的に「保証しない」 >> と明示した珍しい例であることも事実です。 >> > > なんだそりゃ。じゃあその辺に転がってるArray#replaceとかの機能よりも$SAFE > というあからさまにセキュリティに関連している機能の方がより危ないってこと > ですか?その発想は俺にはないです。設計として破綻しています。 とのことですが、一応誤解が生じないように補足しておきます。 セーフレベル4環境は信用できないプログラムを実行することを想定していますので これを運用している状態は Array#replace よりは危ないのではないかと思われます。 実際これまでとても危険だったわけですよね。 セーフレベル4環境を運用する場合、現在のセキュリティモデルにおいては最低限 ObjectSpace.each_object(Object) do |obj| obj.freeze if obj.tainted? and not object.frozen? end を事前に行なうくらいでないと何が起こるか分かりません (逆に言えば大抵これで問題を軽減できると思います)。 そういう運用知識がこれまであまり蓄積されていないように思われて残念です。