Class: TaintedLove::Replacer::ReplaceYAML

Inherits:
Base
  • Object
show all
Defined in:
lib/tainted_love/replacer/replace_yaml.rb

Instance Method Summary collapse

Methods inherited from Base

replacers

Instance Method Details

#replace!Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/tainted_love/replacer/replace_yaml.rb', line 10

def replace!
  YAML.instance_eval do
    alias :_tainted_love_original_load :load

    def load(source, *args)
      TaintedLove.report(
        :ReplaceYAML,
        source,
        [:rce],
        'YAML.load using tainted input'
      ) if source.tainted?

      _tainted_love_original_load(source, *args)
    end
  end
end

#should_replace?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/tainted_love/replacer/replace_yaml.rb', line 6

def should_replace?
  Object.const_defined?('YAML')
end