Sentinel mXSS: Why Provenance Beats Sanitizers
Mutation XSS (mXSS) is a class of browser parser-confusion attacks that bypass every major HTML sanitizer on the market. DOMPurify, the gold standard, has had multiple mXSS bypasses — and will continue to, because the problem is fundamentally unsolvable at the sanitizer level.
NoopJS takes a different approach. Instead of trying to strip dangerous content from HTML strings (a denylist that can never be complete), the NoopJS SSR engine records a provenance manifest for every element it renders. On the client, before injecting server-rendered HTML, the verifier walks the parsed DOM and asks one question of each element: "did the SSR engine emit you?"
If the element lacks a matching sentinel ID in the manifest, it's removed. If its tag doesn't match, it's removed. If it carries unexpected attributes, they're stripped. This isn't a denylist — it's a provenance check.
An attacker cannot forge a valid sentinel value because they don't control the SSR engine, and they cannot inject elements that survive the verification pass, because the browser's innerHTML parser cannot manufacture a valid sentinel.
The verifier is ~50 bytes gzipped — zero dependencies, no DOMPurify overhead. This is only possible because NoopJS controls both the SSR engine and the client runtime — the same vertical integration that enables true resumability without hydration.
All 18 known mXSS payloads are blocked. Zero bypasses. Not because we're better at writing sanitizers, but because we eliminated the need for them.