Sha256: e2d231fb4bbaf070bcb99a8e4d19081d2afb8bcd995e66fcc757d0ab6b837f4a

Contents?: true

Size: 661 Bytes

Versions: 3

Compression:

Stored size: 661 Bytes

Contents

# frozen_string_literal: true

module TaintedLove
  module Replacer
    class ReplaceObject < Base
      def replace!
        mod = Module.new do
          def send(*args, &block)
            if args[0].tainted? && args[1].tainted?
              TaintedLove.report(
                :ReplaceObject,
                args.first,
                [:rce],
                'User input in the first 2 arguments of Object#send'
              )
            end

            super(*args, &block)
          end

          def tainted_love_tracking
            @tainted_love_tracking ||= []
          end
        end

        Object.prepend(mod)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tainted_love-0.1.5 lib/tainted_love/replacer/replace_object.rb
tainted_love-0.1.4 lib/tainted_love/replacer/replace_object.rb
tainted_love-0.1.3 lib/tainted_love/replacer/replace_object.rb