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/
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]