Vulnerability class — DOM XSS

DOM-based injection testing, proven

DOM-based injection (DOM XSS) — what it is, why a signature scanner misses the cases that matter, and how SuperPentest proves it with a controlled test, clean-session reproduction and hash-chained evidence mapped to A03: Injection.

Vulnerability class · 28 October 2026A03: Injection

DOM-based injection is a vulnerability class scanners only partly reach — here is what it is, why that is, and how SuperPentest proves it on your app.

What DOM-based injection is

DOM-based injection happens entirely in the browser: client-side JavaScript takes attacker-controlled input from the URL, storage or messages and writes it into a dangerous sink, executing code without the server ever seeing a malicious payload. Modern single-page apps are full of these sinks.

What it looks like

A single-page app reads location.hash and writes it into the page with innerHTML. A link like #<img src=x onerror=steal()> executes entirely in the victim's browser — the malicious value never reaches the server, so a server-side scan sees nothing.

Why a scanner misses it

A server-side scanner never observes the client-side data flow, so it is blind to DOM injection by construction. Finding it requires driving a real browser, tracing sources to sinks, and triggering execution.

How SuperPentest proves it

SuperPentest treats DOM-based injection the way an attacker does, in four steps: it understands the business rule the feature is meant to enforce, runs a controlled test against it, then reproduces any candidate from a clean session — a fresh login with no leftover state — and finally records the impact with hash-chained request/response evidence mapped to the control it breaks. Nothing is reported as a finding until that clean-session reproduction succeeds; a candidate is not a finding.

  • Understand — map the feature and the rule it should enforce.
  • Controlled test — exercise the class safely, within the authorized scope.
  • Clean-session reproduction — break in again from a fresh session to rule out flukes and stale state.
  • Impact + evidence — hash-chained request/response, mapped to A03: Injection and your compliance controls.

DAST glossary →

Where it fits in coverage

DOM-based injection is one of the 35 vulnerability classes the engine tests every run, driven through 40+ specialist tools orchestrating 13 industry-standard open-source scanners. See the full coverage map or the 35 classes explained.

SQLi testing · XSS testing · SSTI testing · command injection testing.

FAQ

Can a scanner find DOM-based injection?

A scanner finds some cases, but misses the ones that matter — behind authentication, blind variants, or anything needing a multi-step workflow — and raises false positives on the rest. SuperPentest verifies each candidate before it counts.

How do I know a reported DOM-based injection finding is real?

Every finding is reproduced from a clean session with hash-chained request/response evidence you can replay. If a run cannot complete the checks, it is stamped degraded coverage rather than passed as clean. See how findings are verified →

Test your app for DOM-based injection. Book a demo or request an evaluation account. See the sample report.