Actions
Bug #9564
closedTainted string permitted in Kernel.trap in safe level 1
Description
According to the existing documentation (I am referring to Programming Ruby: The
Pragmatic Programmer's Guide at http://ruby-doc.com/docs/ProgrammingRuby/ and
The Ruby Programming Language by Flanagan, Matsumoto) Kernel.trap should not
accept a tainted string if $SAFE >= 1.
However, this is true only for $SAFE >= 2, and tainted signal string is accepted
in safe level 1:
signal = "SIGKILL".taint
Thread.start {
$SAFE = 1
no exception¶
trap(signal) { puts 'foo'}
}.join
Thread.start {
$SAFE = 2
throws SecurityError¶
trap(signal) { puts 'foo'}
}.join
Actions
Like0
Like0Like0