reversehard

Bring Your Own Program (BYOP)

uoftctf2026

Task: Custom JavaScript VM/emulator with an inline cache optimization, an object shape system, and a security allowlist blocking access to key 0 (file read function). Solution: Exploited an inline cache poisoning bug where dictionary mode transition reorders slots without bumping the cache version (due to missing hit flag on parent objects), causing a cached lookup to return the restricted F0 function instead of F1.

$ ls tags/ techniques/
inline_cache_poisoningshape_transition_abusecache_invalidation_bypass

🔒

Permission denied (requires tier.pro)

Sign in to access full writeups

Create a free account with GitHub, then upgrade to Pro.

$ssh [email protected]