pwnhard
babbaboon
miptctf
Task: SpiderMonkey js shell with custom ArrayBuffer.prototype.merge() that has a stale length bug on self-merge. Solution: Use S=3 buffer for minimal 3-byte OOB write to flip RESIZABLE flag on adjacent regular ArrayBuffer, enabling resize to overlap next buffer metadata for AAR/AAW, then hijack native function pointer for code execution.
$ ls tags/ techniques/
type_confusionoob_writespidermonkeyarraybufferresizable_arraybufferheap_corruptionbrowser_exploitationjavascript_engine
self_merge_oobflags_corruptionresizable_flag_flipgc_heap_sprayarbitrary_read_writefunction_pointer_hijacknative_function_overwrite
🔒
Permission denied (requires tier.pro)
Sign in to access full writeups
Create a free account with GitHub, then upgrade to Pro.
$ssh [email protected]