Skip to content

Solution #3: Dice

Choose a tag to compare

@mohamed-osama-aboelkheir mohamed-osama-aboelkheir released this 20 Aug 19:42
· 9 commits to main since this release

The official solution to Challenge #3: Dice.

Covers the correct answer, why the (absent) auth model is a red herring, the full application code flow, the threat model with mitigation review, complete exploitation steps (fullwidth <img onerror> reviving a stripped tag), the fix, CWE grounding (CWE-79 XSS via CWE-180 "Validate Before Canonicalize", rooted in CWE-176 Unicode handling), and real-world grounding (DOMPurify's own "do not modify the output" rule + Unicode normalization security guidance).

No spoilers were posted anywhere before this release — thanks to everyone who worked through it privately. Discussion is welcome now that it's out.