ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:40275] [Ruby 2.0 - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
@ 2011-10-22  4:49 ` Thomas Sawyer
  2012-03-27 13:46 ` [ruby-core:43733] [ruby-trunk " mame (Yusuke Endoh)
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: Thomas Sawyer @ 2011-10-22  4:49 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by Thomas Sawyer.


A more granular safe system would be nice.
----------------------------------------
Feature #5455: $SAFE should be removed
http://redmine.ruby-lang.org/issues/5455

Author: Motohiro KOSAKI
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:43733] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
  2011-10-22  4:49 ` [ruby-core:40275] [Ruby 2.0 - Feature #5455] $SAFE should be removed Thomas Sawyer
@ 2012-03-27 13:46 ` mame (Yusuke Endoh)
  2012-04-02  8:17 ` [ruby-core:44060] " nahi (Hiroshi Nakamura)
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: mame (Yusuke Endoh) @ 2012-03-27 13:46 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by mame (Yusuke Endoh).

Target version set to 3.0


----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-25239

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 3.0


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44060] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
  2011-10-22  4:49 ` [ruby-core:40275] [Ruby 2.0 - Feature #5455] $SAFE should be removed Thomas Sawyer
  2012-03-27 13:46 ` [ruby-core:43733] [ruby-trunk " mame (Yusuke Endoh)
@ 2012-04-02  8:17 ` nahi (Hiroshi Nakamura)
  2012-04-02  8:28   ` [ruby-core:44061] " Yukihiro Matsumoto
  2012-04-02  8:43 ` [ruby-core:44062] " nahi (Hiroshi Nakamura)
                   ` (12 subsequent siblings)
  15 siblings, 1 reply; 20+ messages in thread
From: nahi (Hiroshi Nakamura) @ 2012-04-02  8:17 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by nahi (Hiroshi Nakamura).

Assignee set to matz (Yukihiro Matsumoto)
Target version deleted (3.0)

I guess Endoh-san postponed the decision to 3.0 dev cycle, but please allow me to try a bit more now.

If removing $SAFE in 3.0 (or something, the version incompatible with 2.0) is acceptable, is it possible to deprecate it in 2.0?  Warn $SAFE usage with -w I mean.

Matz, do you think we can decide it (removal and deprecation) now?
----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-25590

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: 
Target version: 


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44061] Re: [ruby-trunk - Feature #5455] $SAFE should be removed
  2012-04-02  8:17 ` [ruby-core:44060] " nahi (Hiroshi Nakamura)
@ 2012-04-02  8:28   ` Yukihiro Matsumoto
  0 siblings, 0 replies; 20+ messages in thread
From: Yukihiro Matsumoto @ 2012-04-02  8:28 UTC (permalink / raw)
  To: ruby-core

Hi,

I don't know why you are so eager to remove it.  It's not part of "the
spec".  It's CRuby's implementation dependent feature.  Why bother?

							matz.

In message "Re: [ruby-core:44060] [ruby-trunk - Feature #5455] $SAFE should be removed"
    on Mon, 2 Apr 2012 17:17:26 +0900, "nahi (Hiroshi Nakamura)" <nakahiro@gmail.com> writes:

|Issue #5455 has been updated by nahi (Hiroshi Nakamura).
|
|Assignee set to matz (Yukihiro Matsumoto)
|Target version deleted (3.0)
|
|I guess Endoh-san postponed the decision to 3.0 dev cycle, but please allow me to try a bit more now.
|
|If removing $SAFE in 3.0 (or something, the version incompatible with 2.0) is acceptable, is it possible to deprecate it in 2.0?  Warn $SAFE usage with -w I mean.
|
|Matz, do you think we can decide it (removal and deprecation) now?

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44062] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2012-04-02  8:17 ` [ruby-core:44060] " nahi (Hiroshi Nakamura)
@ 2012-04-02  8:43 ` nahi (Hiroshi Nakamura)
  2012-04-02 18:03   ` [ruby-core:44078] " Yukihiro Matsumoto
  2012-04-02 17:07 ` [ruby-core:44075] " headius (Charles Nutter)
                   ` (11 subsequent siblings)
  15 siblings, 1 reply; 20+ messages in thread
From: nahi (Hiroshi Nakamura) @ 2012-04-02  8:43 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by nahi (Hiroshi Nakamura).

Assignee deleted (matz (Yukihiro Matsumoto))
Target version set to 3.0

Thanks for the swift response!

> I don't know why you are so eager to remove it.  It's not part of "the
> spec".  It's CRuby's implementation dependent feature.  Why bother?

Though you might be thinking I'm on a JRuby side now, my concern is not on "the spec".  The reason why I want to remove $SAFE from CRuby (not the spec) is that it's hard to implement properly.  CRuby applications that depends on $SAFE should check if all possible third-party C extensions honor $SAFE.

Shugo said that it should be removed from "2.0" first at [ruby-dev:44554].

That said, I agree that Endoh-san want to postpone this to 3.0 now. I'll revert my "Target version" change.  But feel free to discuss about this now :)
----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-25592

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 3.0


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44075] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (3 preceding siblings ...)
  2012-04-02  8:43 ` [ruby-core:44062] " nahi (Hiroshi Nakamura)
@ 2012-04-02 17:07 ` headius (Charles Nutter)
  2012-04-02 17:54   ` [ruby-core:44077] " Yukihiro Matsumoto
  2012-04-15 18:21 ` [ruby-core:44369] " headius (Charles Nutter)
                   ` (10 subsequent siblings)
  15 siblings, 1 reply; 20+ messages in thread
From: headius (Charles Nutter) @ 2012-04-02 17:07 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by headius (Charles Nutter).


A deprecation warning would be good in any case.

Is it the position of ruby-core/MRI/Matz that $SAFE should be used for security purposes? There are a number of Rubyists (not to mention content in some Ruby books) that claim this.

However, the equivalent feature from other languages (Perl, primarily) is *not* intended to be used to provide a secure environment. The warnings from safe mode in those languages are intended to be advisory, used before deployment, and it is discouraged to use safe mode in production. Enforcing $SAFE as a security mechanism also requires all code everywhere to properly handle tainting and untrust...including C extensions. $SAFE/taint/untrust is just a bad way to do security.

I suggest that $SAFE should *at least* be deprecated in 2.0. I'm guessing that the window has closed on coming up with a "better" security replacement, but people should know that $SAFE does not provide the security guarantees they think it does.
----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-25609

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 3.0


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44077] Re: [ruby-trunk - Feature #5455] $SAFE should be removed
  2012-04-02 17:07 ` [ruby-core:44075] " headius (Charles Nutter)
@ 2012-04-02 17:54   ` Yukihiro Matsumoto
  0 siblings, 0 replies; 20+ messages in thread
From: Yukihiro Matsumoto @ 2012-04-02 17:54 UTC (permalink / raw)
  To: ruby-core

Hi,

In message "Re: [ruby-core:44075] [ruby-trunk - Feature #5455] $SAFE should be removed"
    on Tue, 3 Apr 2012 02:07:15 +0900, "headius (Charles Nutter)" <headius@headius.com> writes:

|A deprecation warning would be good in any case.
|
|Is it the position of ruby-core/MRI/Matz that $SAFE should be used for security purposes? There are a number of Rubyists (not to mention content in some Ruby books) that claim this.

I have never claimed $SAFE is safe enough for strong security in any
way.  It's for advisory, as other languages do.

|However, the equivalent feature from other languages (Perl, primarily) is *not* intended to be used to provide a secure environment. The warnings from safe mode in those languages are intended to be advisory, used before deployment, and it is discouraged to use safe mode in production. Enforcing $SAFE as a security mechanism also requires all code everywhere to properly handle tainting and untrust...including C extensions. $SAFE/taint/untrust is just a bad way to do security.
|
|I suggest that $SAFE should *at least* be deprecated in 2.0. I'm guessing that the window has closed on coming up with a "better" security replacement, but people should know that $SAFE does not provide the security guarantees they think it does.

I consider this advisory useful.  Why do you want to remove?

							matz.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44078] Re: [ruby-trunk - Feature #5455] $SAFE should be removed
  2012-04-02  8:43 ` [ruby-core:44062] " nahi (Hiroshi Nakamura)
@ 2012-04-02 18:03   ` Yukihiro Matsumoto
  0 siblings, 0 replies; 20+ messages in thread
From: Yukihiro Matsumoto @ 2012-04-02 18:03 UTC (permalink / raw)
  To: ruby-core

Hi,

In message "Re: [ruby-core:44062] [ruby-trunk - Feature #5455] $SAFE should be removed"
    on Mon, 2 Apr 2012 17:43:47 +0900, "nahi (Hiroshi Nakamura)" <nakahiro@gmail.com> writes:

|> I don't know why you are so eager to remove it.  It's not part of "the
|> spec".  It's CRuby's implementation dependent feature.  Why bother?
|
|Though you might be thinking I'm on a JRuby side now, my concern is not on "the spec".  The reason why I want to remove $SAFE from CRuby (not the spec) is that it's hard to implement properly.  CRuby applications that depends on $SAFE should check if all possible third-party C extensions honor $SAFE.
|
|Shugo said that it should be removed from "2.0" first at [ruby-dev:44554].
|
|That said, I agree that Endoh-san want to postpone this to 3.0 now. I'll revert my "Target version" change.  But feel free to discuss about this now :)

It's still useful for advisory. Especially $SAFE=1.  Since I don't
trust myself, I don't claim $SAFE=4 is secure.  So I can agree with
removing $SAFE=4 feature.

Do you have any plan for "replacement"?

							matz.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44369] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (4 preceding siblings ...)
  2012-04-02 17:07 ` [ruby-core:44075] " headius (Charles Nutter)
@ 2012-04-15 18:21 ` headius (Charles Nutter)
  2012-04-19  4:35 ` [ruby-core:44445] " jballanc (Joshua Ballanco)
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: headius (Charles Nutter) @ 2012-04-15 18:21 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by headius (Charles Nutter).


My plan at the moment (in rough form) is to break out the individual restrictions the SAFE levels are intended to govern and allow controlling them via Java security policies. I already implemented one as a prototype, to permit evauation of code (Java security policies are whitelists, not blacklists...another reason they do a good job of security):

https://github.com/headius/jruby/commit/b8f17f21f083207612bc234ab022b2a07a9b5e11

It should be possible to implement all the SAFE security restrictions this way, but the result will be more flexible (since users can mix and match features), more explicit, and in JRuby's case part of standard Java security policy management.

I would suggest that Ruby 2.0 put together a list of all restricted operations and form a similar security system to the JVM. I am willing to help with that.
----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-25916

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 3.0


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44445] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (5 preceding siblings ...)
  2012-04-15 18:21 ` [ruby-core:44369] " headius (Charles Nutter)
@ 2012-04-19  4:35 ` jballanc (Joshua Ballanco)
  2012-04-19 15:29   ` [ruby-core:44454] " Martin Boßlet
  2012-04-28  3:25 ` [ruby-core:44716] " headius (Charles Nutter)
                   ` (8 subsequent siblings)
  15 siblings, 1 reply; 20+ messages in thread
From: jballanc (Joshua Ballanco) @ 2012-04-19  4:35 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by jballanc (Joshua Ballanco).


I just wanted to chime in here and suggest that, in the process of adding security restrictions, it might be worth considering the Sandbox implemented in MacRuby and Aaron's playpen library (https://github.com/tenderlove/playpen), both of which are built on the OS-level security framework. I wonder if SAFE might better be replaced by something like this (built on OS specific security frameworks)?
----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-25998

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 3.0


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44454] Re: [ruby-trunk - Feature #5455] $SAFE should be removed
  2012-04-19  4:35 ` [ruby-core:44445] " jballanc (Joshua Ballanco)
@ 2012-04-19 15:29   ` Martin Boßlet
  0 siblings, 0 replies; 20+ messages in thread
From: Martin Boßlet @ 2012-04-19 15:29 UTC (permalink / raw)
  To: ruby-core

[-- Attachment #1: Type: text/plain, Size: 1110 bytes --]

On Apr 19, 2012 6:36 AM, "jballanc (Joshua Ballanco)" <jballanc@gmail.com>
wrote:
>
>
> Issue #5455 has been updated by jballanc (Joshua Ballanco).
>
>
> I just wanted to chime in here and suggest that, in the process of adding
security restrictions, it might be worth considering the Sandbox
implemented in MacRuby and Aaron's playpen library (
https://github.com/tenderlove/playpen), both of which are built on the
OS-level security framework. I wonder if SAFE might better be replaced by
something like this (built on OS specific security frameworks)?

A problem that I see with this approach is that it would be hard to support
this consistently across a variety of platforms. I think a more consistent
approach would be to define an independent, abstract interface like Charles
suggested. Then the individual implementations could very well use
OS-specific helpers to realize the spec, while JRuby is still free to
piggyback on Java's built-in features. Personally, I believe these kinds of
abstraction layers help a lot to keep consistence and encourage a more
testable, cleaner overall design.

-Martin

[-- Attachment #2: Type: text/html, Size: 1305 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:44716] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (6 preceding siblings ...)
  2012-04-19  4:35 ` [ruby-core:44445] " jballanc (Joshua Ballanco)
@ 2012-04-28  3:25 ` headius (Charles Nutter)
  2014-02-14 10:04 ` [ruby-core:60729] " akr
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: headius (Charles Nutter) @ 2012-04-28  3:25 UTC (permalink / raw)
  To: ruby-core


Issue #5455 has been updated by headius (Charles Nutter).


In an effort to be constructive here, I will attempt to break out specific, concrete permissions revoked at each SAFE level (or conversely, granted as SAFE levels are reduced). I base this on the publicly available edition of Programming Ruby (http://www.ruby-doc.org/docs/ProgrammingRuby/) under the chapter "Locking Ruby in the Safe", since I do not have a current copy handy.

I attempt to phrase these as they would be described in security documentation, with a proposed "permission" name for illustrative purposes.

These permissions would NOT necessarily be grouped as in the SAFE levels, other than for SAFE level compatibility. The user would be able to mix and match them at will, as with Java security policies.

Some permissions may imply other permissions must be granted.

I also omit restrictions relating to tainting, since I believe tainting is a fundamentally flawed mechanism of security.

From SAFE level 1:

* OptionsFromEnvironment - whether RUBYLIB and RUBYOPT are observed
* SearchCurrentDirectory - whether . is added to the load path. In 1.9 this one is moot, since . is not added to load path by default
* NonlocalScripts - whether -e -i -I -r -s -S and -x options are observed
* ExecFromWorldWritable - whether external commands can be executed if the directory containing them is world-writable
* EvalString - whether arbitrary strings can be evaluated. Either allow strings or do not; don't rely on tainting bits for "safety".
* LoadFile - whether external files can be loaded. Same argument regarding tainting.
* QueryIOStatus - whether IO channels' statuses can be queried or modified. (I'm not quite sure what "status" means in this context)
* ExecCommand - whether external commands can be executed.
* SignalTrap - whether signals can be trapped and handled.

From SAFE level 2:

* ManipulateDirectories - whether directories can be modified, changed into, or chrooted. Note that Java provides for file/dir permissions to be granted on a per-file or per-hierarchy basis, which is much more flexible. You grant access to what you want to allow access to.
* LoadFromWorldWritable - whether files can be loaded from directories that are world-writable.
* LoadFromHomeBase - whether files can be loaded from paths starting with ~.
* QueryFileStatus - whether methods like File.stat, File.umask can be used.
* ModifyFileStatus - whether methods like File.chown, File.chmod can be used. Java may have a better grouping of these operations, I'm not sure.
* ModifyProcess - whether methods like Kernel#fork, Process.setpgid, etc can be used.

From SAFE level 3:

NONE..the only restrictions at this level are related to tainting.

From SAFE level 4:

* ModifyGlobalVariable - whether global variables can be updated.
* AccessInstanceVariableExternally - whether methods like instance_variable_get can be used.
* ModifyEnvironmentVariable - whether ENV changes are permitted.
* CloseFile - whether already open files can be closed.
* OpenFile - whether new files can be opened.
* FreezeObject - whether objects not already frozen can be frozen.
* AlterVisibility - whether existing methods can have their visibility changed.
* AliasMethod - whether new method aliases can be defined.
* QueryMetadata - whether method and variable lists can be queried.
* DefineMethod - whether methods can be defined, redefined, removed, or undef'ed.
* ModifyObject - whether the Object class can be modified in any way. Perhaps includes top-level?
* ModifyInstanceVariablesExternally - whether instance variables can be modified or removed via instance_variable_set and friends.
* ModifyThread - whether currently running threads can be modified in any way.
* ModifyThreadLocalVariable - whether thread-local variables can be modified.
* TerminateThread - whether threads can be terminated from outside the thread itself.
* ModifyThreadGroup - whether threads can be removed or added to thread groups.
* ExitProcess - whether the current process can be terminated.
* IncludeModule - whether modules can be included into existing class hierarchies.
* WalkObjects - whether methods like each_object or _id2ref are allowed.
* WriteToIO - whether writes to IO channels are allowed.
* DefineAutoload - whether new autoloads can be defined.

This is just a rough example from 15 minutes of flipping the safe level documentation around a little. It's obviously not all-encompassing; there are things you might expect an attacker to do in untrusted code that aren't covered here. But hopefully it shows how the current safe levels could be broken into finer-grained permissions that users can assembly in any way they choose, and which different implementations can implement either in terms of VM restrictions or OS-level restrictions.
----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-26277

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 3.0


see

[ruby-dev:44554]
[ruby-dev:44572] 



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:60729] [ruby-trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (7 preceding siblings ...)
  2012-04-28  3:25 ` [ruby-core:44716] " headius (Charles Nutter)
@ 2014-02-14 10:04 ` akr
  2015-06-12  6:50 ` [ruby-core:69530] [Ruby trunk " shibata.hiroshi
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: akr @ 2014-02-14 10:04 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by Akira Tanaka.

Description updated

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-45151

* Author: Motohiro KOSAKI
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: Next Major
----------------------------------------
see

ruby-dev:44554]
ruby-dev:44572] 




-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:69530] [Ruby trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (8 preceding siblings ...)
  2014-02-14 10:04 ` [ruby-core:60729] " akr
@ 2015-06-12  6:50 ` shibata.hiroshi
  2015-06-12  7:06 ` [ruby-core:69531] " matz
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: shibata.hiroshi @ 2015-06-12  6:50 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by Hiroshi SHIBATA.

Description updated

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-52855

* Author: Motohiro KOSAKI
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:69531] [Ruby trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (9 preceding siblings ...)
  2015-06-12  6:50 ` [ruby-core:69530] [Ruby trunk " shibata.hiroshi
@ 2015-06-12  7:06 ` matz
  2015-06-12 23:30 ` [ruby-core:69561] " shibata.hiroshi
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: matz @ 2015-06-12  7:06 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by Yukihiro Matsumoto.


CRuby 2.1 has removed $SAFE=4 which is half-baked sandboxing. After serious consideration and discussion, we decided to remove $SAFE=3 (tainting mode) and $SAFE=2 (process operation prohibition) in CRuby 2.3. Of course other implementation can ignore $SAFE at all.

Matz.


----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-52856

* Author: Motohiro KOSAKI
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:69561] [Ruby trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (10 preceding siblings ...)
  2015-06-12  7:06 ` [ruby-core:69531] " matz
@ 2015-06-12 23:30 ` shibata.hiroshi
  2015-06-18 14:22 ` [ruby-core:69654] " shibata.hiroshi
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: shibata.hiroshi @ 2015-06-12 23:30 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by Hiroshi SHIBATA.

Assignee set to Hiroshi SHIBATA

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-52893

* Author: Motohiro KOSAKI
* Status: Open
* Priority: Normal
* Assignee: Hiroshi SHIBATA
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:69654] [Ruby trunk - Feature #5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (11 preceding siblings ...)
  2015-06-12 23:30 ` [ruby-core:69561] " shibata.hiroshi
@ 2015-06-18 14:22 ` shibata.hiroshi
  2017-12-12 11:00 ` [ruby-core:84204] [Ruby trunk Feature#5455] " hsbt
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 20+ messages in thread
From: shibata.hiroshi @ 2015-06-18 14:22 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by Hiroshi SHIBATA.


removed $SAFE=2 at r50958, and $SAFE=3 at r50932

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-53010

* Author: Motohiro KOSAKI
* Status: Open
* Priority: Normal
* Assignee: Hiroshi SHIBATA
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:84204] [Ruby trunk Feature#5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (12 preceding siblings ...)
  2015-06-18 14:22 ` [ruby-core:69654] " shibata.hiroshi
@ 2017-12-12 11:00 ` hsbt
  2019-03-08 12:13 ` [ruby-core:91719] " hsbt
  2019-03-08 13:03 ` [ruby-core:91720] " takashikkbn
  15 siblings, 0 replies; 20+ messages in thread
From: hsbt @ 2017-12-12 11:00 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by hsbt (Hiroshi SHIBATA).

Target version set to Next Major

We should warn to use `$SAFE = 1` at Ruby 2.6 for Ruby 3.0.

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-68322

* Author: kosaki (Motohiro KOSAKI)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Target version: Next Major
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:91719] [Ruby trunk Feature#5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (13 preceding siblings ...)
  2017-12-12 11:00 ` [ruby-core:84204] [Ruby trunk Feature#5455] " hsbt
@ 2019-03-08 12:13 ` hsbt
  2019-03-08 13:03 ` [ruby-core:91720] " takashikkbn
  15 siblings, 0 replies; 20+ messages in thread
From: hsbt @ 2019-03-08 12:13 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by hsbt (Hiroshi SHIBATA).

Assignee changed from hsbt (Hiroshi SHIBATA) to matz (Yukihiro Matsumoto)
Status changed from Open to Assigned

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-76993

* Author: kosaki (Motohiro KOSAKI)
* Status: Assigned
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: Next Major
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [ruby-core:91720] [Ruby trunk Feature#5455] $SAFE should be removed
       [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
                   ` (14 preceding siblings ...)
  2019-03-08 12:13 ` [ruby-core:91719] " hsbt
@ 2019-03-08 13:03 ` takashikkbn
  15 siblings, 0 replies; 20+ messages in thread
From: takashikkbn @ 2019-03-08 13:03 UTC (permalink / raw)
  To: ruby-core

Issue #5455 has been updated by k0kubun (Takashi Kokubun).

Status changed from Assigned to Rejected

The latest decision by Matz (making $SAFE no effect in 2.7) was made in #14353. So closing this ticket to prefer that ticket as a log.

----------------------------------------
Feature #5455: $SAFE should be removed
https://bugs.ruby-lang.org/issues/5455#change-76994

* Author: kosaki (Motohiro KOSAKI)
* Status: Rejected
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: Next Major
----------------------------------------
see

[ruby-dev:44554](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44554)
[ruby-dev:44572](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/44572)



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-03-08 13:03 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <redmine.issue-5455.20111018040413@ruby-lang.org>
2011-10-22  4:49 ` [ruby-core:40275] [Ruby 2.0 - Feature #5455] $SAFE should be removed Thomas Sawyer
2012-03-27 13:46 ` [ruby-core:43733] [ruby-trunk " mame (Yusuke Endoh)
2012-04-02  8:17 ` [ruby-core:44060] " nahi (Hiroshi Nakamura)
2012-04-02  8:28   ` [ruby-core:44061] " Yukihiro Matsumoto
2012-04-02  8:43 ` [ruby-core:44062] " nahi (Hiroshi Nakamura)
2012-04-02 18:03   ` [ruby-core:44078] " Yukihiro Matsumoto
2012-04-02 17:07 ` [ruby-core:44075] " headius (Charles Nutter)
2012-04-02 17:54   ` [ruby-core:44077] " Yukihiro Matsumoto
2012-04-15 18:21 ` [ruby-core:44369] " headius (Charles Nutter)
2012-04-19  4:35 ` [ruby-core:44445] " jballanc (Joshua Ballanco)
2012-04-19 15:29   ` [ruby-core:44454] " Martin Boßlet
2012-04-28  3:25 ` [ruby-core:44716] " headius (Charles Nutter)
2014-02-14 10:04 ` [ruby-core:60729] " akr
2015-06-12  6:50 ` [ruby-core:69530] [Ruby trunk " shibata.hiroshi
2015-06-12  7:06 ` [ruby-core:69531] " matz
2015-06-12 23:30 ` [ruby-core:69561] " shibata.hiroshi
2015-06-18 14:22 ` [ruby-core:69654] " shibata.hiroshi
2017-12-12 11:00 ` [ruby-core:84204] [Ruby trunk Feature#5455] " hsbt
2019-03-08 12:13 ` [ruby-core:91719] " hsbt
2019-03-08 13:03 ` [ruby-core:91720] " takashikkbn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).