AdminShade ClickFix kit
AdminShade is a WordPress visitor gate that hides from administrators and opens a timed remote iframe. We have matched it on 138 sites since 2 September.
AdminShade in numbers
Since 2 September, the first AdminShade match in our records, counted on 12 November 2026. How we count.
| Sites with AdminShade code | 138 |
|---|---|
| Sites with a match in the last 30 days | 77 |
| New sites in October | 65 |
| Still serving it when recaptured at least 25 days later | 23 of 45 sites (51%) |
| Sites running WordPress (captured since 25 September) | 94% |
The administrator gets the quiet version
AdminShade is a WordPress injection built around window.__jsInjectorModal. It exits on /wp-admin and /wp-login.php, a wordpress_logged_in cookie, the WordPress admin bar or an admin-bar body class. The owner can browse the site while signed in and miss the full-screen frame served to visitors.
Each browser gets a cookie made from jsInjectorShown_ and the current hostname. The cookie lasts one year. Returning with the same profile suppresses the frame, so a logged-out test still needs fresh browser storage.
One branch asks before showing the frame
A branch captured on 11 October accepts Windows, macOS and Android visitors. Other mobile platforms trigger a status request without opening the frame. Eligible visitors go through a controller check carrying captchashowed=true; the iframe opens only when the JSON reply contains ok: true.
The script sets the one-year cookie, creates a sandboxed iframe at the highest z-index and locks scrolling on both the document and body. That captured configuration removes the frame after 50 seconds and restores scrolling. The remote page occupies the whole viewport during that interval.
Another branch clears the screen first
A second 11 October build starts a MutationObserver and checks the page every 500 milliseconds for other fake verification overlays. It removes known Cloudflare-style roots, hides large fixed elements above its z-index threshold and blocks fetch or XMLHttpRequest calls to suspicious verification routes. One explicit target is #bw-cf-root, used by BW panel.
After the window finishes loading, this branch waits about 600 milliseconds and opens its own iframe for five minutes. It saves the one-year cookie when the frame closes. The overlay cleaner keeps running even when that cookie suppresses another display.
What we see
| Month | New sites |
|---|---|
| September | 52 |
| October | 65 |
| November so far | 21 |
The persistence check found AdminShade again on 23 of 45 sites recaptured at least 25 days after their first match (51%). 94% of AdminShade sites captured since 25 September run WordPress, and 60% of those run WordPress 7.1.
AdminShade often shares a site with other ClickFix code. 75 sites also carry LenAI, 31 carry LA02 and 22 carry OverlayWar.
Checking a WordPress site
Fetch the logged-out HTML with fresh cookies, then search it and cached copies for:
window.__jsInjectorModalorjs-injector-modal-root- checks for
wordpress_logged_in,wpadminbar,/wp-adminor/wp-login.php - cookie names beginning with
jsInjectorShown_ - a full-screen iframe that locks
document.documentElement.style.overflow - a
captchashowedcontroller parameter and anok: truedecision - code that removes
#bw-cf-root, watches page mutations or wrapsfetchandXMLHttpRequest
Remove the injection and the server-side change that writes it. Purge page, plugin and CDN caches before testing again while logged out.
Hosts its commands download from
AdminShade lure commands we captured download from 5 hosts.
| Host | Sites | Last seen | Latest command |
|---|---|---|---|
kalooms[.]com | 9 | CommandURL First seen 2 October 2026, 2 URLs on this host. | |
huesosivvdoite[.]com | 4 | CommandURL First seen 10 November 2026, 1 URL on this host. | |
toolset17[.]tools | 4 | CommandURL First seen 10 November 2026, 1 URL on this host. | |
neebyishaka[.]com | 3 | CommandURL First seen 29 October 2026, 1 URL on this host. | |
alluringsites[.]com | 2 | CommandURL First seen 29 October 2026, 1 URL on this host. |
The ClickFix command tracker lists every host.