[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30625] Re: dl when $SAFE = 1

From: Takaaki Tateishi <ttate@...>
Date: 2007-03-18 18:59:37 UTC
List: ruby-dev #30625
sheepman wrote:
> という感じで、汚染されている文字列を引数として system を呼べてしまいます。
> というわけで、パッチを書いてみました。

まず始めに、以前の私の考えとしては、systemを呼び出すrubyのライブラリ側での
チェックが望ましいと思っていました。dlは、拡張ライブラリを書く代わりにruby
でAPIへアクセスすることを考えて作ったものですので、そのAPIへアクセスする
rubyのプログラムやライブラリがSAFEのチェックをするのが良いのではないかと考
えていました。

しかし、dlは特殊な拡張ライブラリですし、dlを危ないプログラムでは外部入力に
依存するようには使わないという考えの下では、あらゆる操作を禁止するというの
も同意できます。

さて、systemの例ですが、systemの呼び出しそのものはtaintチェックの対象です。
危ない関数が使われる場合にはチェックがかかるはずで、そのときには同時に引数
のチェックも行えば良いと考えることもできると思います。

dlopenについてはdlopenによって何が危険になるのかの議論が必要だと思います。

以上のことから、systemとdlopenの件はどれが適切なのか私には判断できません。

mallocによって得たオブジェクトがtaintedであるべきかどうかについては、すべて
定数から構成されたオブジェクトも危険だとすべきなのかと疑問があります。
その後の中身の変更でtaintedにしなければならない場合がありそうなことは想像で
きますが、allocateの中でtaintedにする理由はどこにあるのでしょうか?
-- 
Takaaki Tateishi <ttate@ttsky.net>

In This Thread