Affiliate fraud turns website visits into someone else's commissions.
Affiliate fraud uses injected scripts and deceptive pages to manufacture tracked visits, clicks or conversions. The code redirects visitors, opens hidden affiliate routes or turns ordinary controls into paid clicks. Since 1 August we have matched affiliate-fraud code on 2,122 sites.
Affiliate fraud in numbers
Since 1 August, when our rule-match records begin, counted on 12 November 2026. How we count.
| Sites with affiliate-fraud code | 2,122 |
|---|---|
| Sites with a match in the last 30 days | 1,298 |
| New sites in October | 946 |
| Still serving affiliate fraud when recaptured at least 25 days later | 487 of 622 sites (78%) |
| Sites running WordPress (captured since 25 September) | 62% |
| Named kits | 5 |
Kits compared
Kits with the most sites in the last 30 days first. One site can carry more than one kit. The last column counts sites recaptured at least 25 days after their first match, where there are at least 50.
| Kit | Last 30 days | All sites | First match | Still serving 25 days on |
|---|---|---|---|---|
| Lnkr | 298 | 400 | 66% of 68 | |
| TrackMyPoss | 269 | 742 | 50% of 167 | |
| PixelMenu | 140 | 170 | ||
| HotejMain | 69 | 99 | ||
| Sign1 | 5 | 5 |
What the infected sites run
860 of the 1,383 sites we captured since 25 September 2026 run WordPress (62%), and 269 sites run Joomla. Shares below are of the WordPress sites, by the version and plugins on each site's latest capture.
| WordPress version | Sites | Share |
|---|---|---|
| WordPress 7.1 | 422 | 49% |
| WordPress 7.0 | 71 | 8% |
| WordPress 6.9 | 58 | 7% |
| WordPress 6.8 | 69 | 8% |
| Other releases from 6.0 | 108 | 13% |
| Older than 6.0 | 69 | 8% |
| Rare or unreadable version | 63 | 7% |
| Plugin | Sites | Share |
|---|---|---|
elementor | 342 | 40% |
contact-form-7 | 290 | 34% |
elementor-pro | 153 | 18% |
woocommerce | 150 | 17% |
revslider | 137 | 16% |
google-site-kit | 102 | 12% |
js_composer | 76 | 9% |
elementskit-lite | 55 | 6% |
header-footer-elementor | 55 | 6% |
essential-addons-for-elementor-lite | 48 | 6% |
wordfence | 26 | 3% |
Affiliate fraud on a website sends traffic through tracked offers without an honest referral. Attackers inject a loader, frame or redirect into the site, then let a traffic controller choose what each browser does.
compromised page or deceptive landing
-> injected loader profiles the visit
-> hidden request, forced click or redirect
-> affiliate tracker records the visit
-> browser reaches an offer or another redirect
Redirects that wait for the right visitor
Some injections load a small remote script and leave the routing decision to its server. HotejMain retrieves routing text through synchronous XHR, reconstructs the destination and injects a keyed click-stage script. PixelMenu loads remote scripts through a one-pixel GIF's onload handler in a Joomla menu. Its scripts check the referrer and browser state before hijacking clicks and Back navigation or showing a lottery offer. Sign1, planted in WordPress widgets, sends on only visitors whose referrer is Google or Bing. Other injections check screen width and browser details first, so a desktop site owner sees the expected page while a mobile visitor is sent elsewhere. We match WordPress maintenance pages that redirect mobile browsers and loaders that request per-visitor configuration.
Reward pages do the same job with a form. A fake TikTok rewards page collects the visitor's email and carries the affiliate tracking values into the address it sends them to.
Hidden frames and cookie stuffing
An off-screen frame can open a tracked affiliate route without taking over the visible page. The destination can then set an attribution cookie, giving the affiliate credit if that browser later buys something. We have matched injected scripts that create large frames outside the viewport and feed them into redirect trackers carrying referral campaign values.
Look beyond the final address. A chain can replay the current path and query on a mirror, send a token through several controllers or keep a once-per-day marker in browser storage. Those gates make repeat checks look clean.
TrackMyPoss and Lnkr
TrackMyPoss sends the site and referrer to a controller, stores returned state in the browser and runs JavaScript from the reply. The reply redirected the visitor to a push and Back-button advertising page.
Lnkr posts visitor context to a routing server and follows its returned destination. Its newer redirector requests high-entropy browser details and checks automation before replacing the current page.
What we see across infected sites
| Month | New sites |
|---|---|
| September | 628 |
| October | 946 |
| November so far | 149 |
62% of the affiliate-fraud sites captured since 25 September run WordPress. 19% made requests for Joomla core paths. Of the 622 sites recaptured at least 25 days after their first match, 487 still served affiliate-fraud code (78%).
Checking a site
Test the logged-out site on mobile and desktop, with the browser network log open. Check for:
- unfamiliar script tags added to the page head or footer
- frames positioned off-screen or reduced to an invisible size
- redirects that run only on mobile, after a delay or after a click
- close buttons, backdrops and Back-button handlers that open another address
- browser-storage keys that suppress the redirect for a day or longer
- requests carrying referral, campaign, click or visitor identifiers
Remove the injected loader and every cached copy. Compare themes, plugins and site templates with trusted releases, review administrator and hosting access, rotate those credentials and test the page again from a clean browser profile.
Kits
Lnkr
298 sites in the last 30 days
Lnkr is an affiliate redirector loaded as a third-party website script.
TrackMyPoss
269 sites in the last 30 days
TrackMyPoss is an affiliate-traffic controller injected into WordPress sites and other pages.
PixelMenu
140 sites in the last 30 days
PixelMenu is a Joomla menu injection that loads remote scripts through an image's onload handler.
HotejMain
69 sites in the last 30 days
HotejMain is an injected traffic-routing kit that reconstructs a keyed click-stage address from a controller's reply.
Sign1
5 sites in the last 30 days
Sign1 is a script planted in WordPress custom HTML widgets and custom code plugins.