Sha256: eb9f40e5d3ed93c458bccb89d6d1615276f9cbb73824dbf0cd579a8cd5a5e139
Contents?: true
Size: 957 Bytes
Versions: 4
Compression:
Stored size: 957 Bytes
Contents
# frozen_string_literal: true module RuboCop module Cop module Security # This cop checks for the use of Marshal class methods which have # potential security issues leading to remote code execution when # loading from an untrusted source. # # @example # # bad # Marshal.load("{}") # Marshal.restore("{}") # # # good # Marshal.dump("{}") # # # okish - deep copy hack # Marshal.load(Marshal.dump({})) # class MarshalLoad < Cop MSG = 'Avoid using `Marshal.%s`.'.freeze def_node_matcher :marshal_load, <<-END (send (const {nil cbase} :Marshal) ${:load :restore} !(send (const {nil cbase} :Marshal) :dump ...)) END def on_send(node) marshal_load(node) do |method| add_offense(node, :selector, format(MSG, method)) end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems