[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

21 messages 2003/09/04
[#21346] Re: $SAFE=4 での autoload — nobu.nakada@... 2003/09/04

なかだです。

[#21359] Re: $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...> 2003/09/05

永井@知能.九工大です.

[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

15 messages 2003/09/28

[ruby-dev:21377] Re: $SAFE=4 でのautoload

From: nobu.nakada@...
Date: 2003-09-12 09:59:09 UTC
List: ruby-dev #21377
なかだです。

At Tue, 9 Sep 2003 01:34:09 +0900,
Yukihiro Matsumoto wrote:
> より正確には、requireには以下のセキュリティチェックがあります。
> 
>   (a) feature名がtaintedかどうか
>   (b) loadするpathが安全かどうか
> 
> autoloadの場合、このうち(a)は呼んだ時点でチェックします。
> (b)の方はload時ですが、これはautoloadを呼んだ時点の$SAFEの値
> でチェックする必要があります。最後に実行そのものは0で実行さ
> れるべきです。

pathのチェックはautoload時点の$SAFEになっていないようです。

$ ./ruby -v -e 'autoload(:Etc, "etc")' \
  -e 'def safe(n=4) proc{$SAFE=n;yield}.call; end' \
  -e 'p safe{Etc}'
ruby 1.8.0 (2003-09-12) [i686-linux]
-e:3: Insecure operation at level 4 (SecurityError)
	from -e:3:in `safe'
	from -e:2:in `call'
	from -e:2:in `safe'
	from -e:3

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread