SourTrade Malvertising: ServiceWorker-Orchestrated In-Browser Assembly Builds a Unique Windows Executable Per Victim

SourTrade Malvertising (TL-2026-1696), also tracked as SourTrade, is a high-severity malware campaign, first published 2026-07-25. It has no confirmed attribution, affects Generic Web browsers supporting the ServiceWorker, SharedWorker, and, maps to 15 MITRE ATT&CK techniques (T1027, T1036, T1059), and is covered by 9 detection rules and 28 indicators of compromise.

Key facts for TL-2026-1696

Threat ID
TL-2026-1696
Also known as
SourTrade
Severity
HIGH
Status
ACTIVE
Category
MALWARE
First published
2026-07-25
Last reviewed
2026-07-25
Attribution confidence
LOW
Motivation
FINANCIAL
Target sectors
finance, cryptocurrency
Target regions
Asia-Pacific, Latin America, Africa, Oceania, Europe
Detection rules
9
Indicators of compromise
28

Malware and tooling in SourTrade Malvertising

Malware and tooling: Trojan.Agent.GOSL, Variant.DenoSnoop.Marte.1, Variant.MAC.Amos.9 / Android.Trojan.Dropper.AVV / Android.Trojan.Banker.AVM, WEEVILPROXY, Bun JavaScript runtime, PostHog / Facebook Pixel / Microsoft Ads, StreamSaver.js

The 'SourTrade' malvertising operation, active since late 2024, impersonates TradingView, Solana, and Luno across malicious Google Ads, Meta, and Twitter/X ad placements to target retail traders and crypto investors in 12 countries across 25 languages. Instead of hosting a finished malicious file, landing pages register a ServiceWorker and SharedWorker that fetch a template, a clean Bun JavaScript runtime, an encrypted Base64 configuration, and a per-session AES-CTR seed from a `/config` endpoint, then assemble a unique Windows PE executable entirely in the browser/stream, defeating hash-based detection by design.

How SourTrade Malvertising works

SourTrade is a long-running malvertising campaign, first observed operating in late 2024 and still active as of the July 2026 Confiant disclosure, that lures retail traders and cryptocurrency investors by impersonating TradingView, Solana, and Luno in sponsored advertisements distributed through Google Ads, Meta/Facebook, and Twitter/X ad ecosystems across 12 countries (reported targeting spans Japan, Thailand, South Korea, Taiwan, Hong Kong, Australia, Bolivia, Brazil, Nigeria, South Africa, Türkiye, and Great Britain) in 25 languages.

Landing pages implement a visitor-fingerprinting/cloaking layer that serves a blank, harmless page to suspected researchers, bots, and automated scanners while routing selected targets to convincing brand-impersonation pages. Rather than distributing a finished executable, the campaign moves malware construction into the victim's own browser: a page-scoped ServiceWorker (registered at `/sw.js`, with source embedded inline to avoid a separate network fetch) intercepts same-origin requests and manages a streamed download; a SharedWorker built from an embedded JavaScript blob (so it is never fetched from a visible URL) requests a `/config` endpoint. That endpoint returns a JSON assembly profile containing a byte-copy 'template' array, a `standaloneUrl` pointing to a clean Bun JavaScript runtime binary, and a per-session AES-CTR seed and size. The worker generates a large pseudorandom byte stream via AES in counter mode, then follows the template to interleave ranges of the clean Bun runtime, the generated pseudorandom stream, and attacker-supplied Base64-encoded blobs (the PE header, section table, and a `.bun` section carrying malicious JavaScriptCore bytecode) into a complete Windows Portable Executable. Because the AES-CTR seed and size are unique per victim/session, no two assembled files share a hash, even though the embedded malicious logic is constant — 'no finished malware ever exists on the network.' The finished stream is handed to the ServiceWorker, which serves it as a same-origin download (via a hidden iframe navigation and a `Content-Disposition: attachment` response header), so the resulting file's Mark-of-the-Web record attributes it to the landing-page origin rather than to the true component sources (the Bun-runtime host and the attacker's config endpoint). Multiple independent write-ups (Confiant, GBHackers, Cybersecurity News, Cyberpress) corroborate a secondary infrastructure domain, `purelogicbox.org`, used to host the clean Bun 'standalone' runtime fetched during assembly; a BeaconBeagle configuration-search lookup against this domain returned no existing C2 correlation records at time of research. Confiant's disclosure additionally identifies approximately 96 malicious domains associated with the campaign to date, alongside three referenced-but-unpublished SHA-256 samples; multiple secondary outlets (Cybersecurity News, Cryptika) present what they describe as SHA-256 IOC tables for these samples, but cross-checking their published hash strings against an independent re-fetch of the same pages produced mutually inconsistent digit sequences (leading/trailing-digit drift consistent with a table-scraping artifact), so no specific hash value is reproduced in this record pending an authoritative, internally-consistent publication.

The delivery mechanism itself evolved: campaign variants observed through April 30, 2026 relied on a GitHub Pages-hosted copy of the StreamSaver.js library to manipulate Mark-of-the-Web attribution; the current ServiceWorker/SharedWorker/Bun-assembly technique documented by Confiant on July 23, 2026 supersedes that approach and represents an operational evolution toward a harder-to-detect, fully in-browser build pipeline. The Hacker News reported on Confiant's findings on July 25, 2026, and independent outlets GBHackers, Cybersecurity News, Cyberpress, and Cryptika published their own technical analyses within roughly a day of the original disclosure.

Attribution and final-payload capability remain explicitly unconfirmed for the current SourTrade samples. Confiant's public disclosure references three unpublished SHA-256 samples and does not disclose specific IOC values for the current wave, and does not assert a malware-family attribution. A separate, well-documented Bitdefender campaign — 'The Scam That Won't Quit: Malicious TradingView Premium Ads Jump from Meta to Google and YouTube' (published September 27, 2025, independently corroborated by Cybersecurity Asia, iTWire, SC World, and KBI Media) — tracked a related TradingView-impersonation malvertising cluster whose final payload was identified as JSCEAL (Check Point's name) / WeevilProxy (WithSecure's name) / Trojan.Agent.GOSL (Bitdefender's final-payload detection name), an infostealer/RAT hybrid capable of full network traffic interception (acting as a local proxy), keylogging, screenshot capture, and cookie/password/cryptocurrency-wallet theft, distributed via an initial loader Bitdefender detects as Variant.DenoSnoop.Marte.1 persisting through a Windows Scheduled Task named `EdgeResourcesInstallerV12-issg`, with macOS (Variant.MAC.Amos.9) and Android (Android.Trojan.Dropper.AVV, Android.Trojan.Banker.AVM) variants also observed, using an oversized (700MB+) downloader for anti-sandbox evasion, and a shift from plaintext HTTP C2 on ports 30303/30308 (routes `/s`, `/set`, `/q`, `/query`) to WebSocket C2 on port 30000 with a `/config` route. Bitdefender's monitoring of this related cluster covered 'the past year' as of its September 2025 publication (placing its earliest tracked activity around September 2024) and identified over 500 rotating domains and subdomains supporting the operation, plus third-party analytics/ad-tracking abuse (PostHog, Facebook Pixel, Microsoft Ads) for conversion tracking and audience targeting. The structural similarity of the `/config`-driven, WebSocket-adjacent delivery pattern between the Bitdefender-tracked cluster and SourTrade is notable, but the source reporting explicitly declines to confirm the current SourTrade samples belong to the same operator or malware family — this record therefore documents the SourTrade delivery mechanism as directly evidenced, and references the JSCEAL/WeevilProxy/Trojan.Agent.GOSL cluster strictly as a related, unconfirmed predecessor/adjacent campaign rather than as a confirmed attribution.

Defenders should treat the entire chain — ad referral, landing-page fingerprinting, ServiceWorker/SharedWorker registration, `/config` retrieval, and the resulting same-origin executable download — as the unit of detection, since any single network artifact (a clean Bun runtime fetch, a JSON config response, a per-victim-unique file hash) appears benign in isolation.

MITRE ATT&CK techniques used in TL-2026-1696

Defense Evasion

T1027 Obfuscated Files or Information; T1036 Masquerading; T1140 Deobfuscate/Decode Files or Information; T1620 Reflective Code Loading

Execution

T1059 Command and Scripting Interpreter; T1204 User Execution

Command and Control

T1071 Application Layer Protocol; T1105 Ingress Tool Transfer

Initial Access

T1189 Drive-by Compromise

Discovery

T1497 Virtualization/Sandbox Evasion

defense-impairment

T1553 Subvert Trust Controls

Resource Development

T1584 Compromise Infrastructure; T1586 Compromise Accounts; T1587 Develop Capabilities; T1608 Stage Capabilities

Affected products and versions in SourTrade Malvertising

  • Generic — Web browsers supporting the ServiceWorker, SharedWorker, and Streams APIs (Chromium-based browsers, Firefox)
    Vulnerable versions: All versions implementing ServiceWorker + SharedWorker + Streams API
  • Oven (Bun) — Bun JavaScript runtime
    Vulnerable versions: Abused as a clean, legitimate carrier binary for a malicious `.bun` PE section; the runtime itself is not vulnerable
  • Microsoft — Windows
    Vulnerable versions: All supported versions (the browser-assembled PE executable is a Windows binary)

Remediation for SourTrade Malvertising

Immediate actions

  • Monitor and consider blocking web/DNS traffic to purelogicbox.org and any newly reported domains observed serving a Bun 'standalone' runtime binary to end-user browsers from unexpected referrers.
  • Alert on ServiceWorker or SharedWorker registrations from newly-registered or ad-referred domains that are immediately followed by a same-origin request to a `/config`-style endpoint and a same-origin executable download.
  • Block or scrutinize hidden-iframe-triggered downloads using a `Content-Disposition: attachment` response header on finance/trading-themed landing pages reached via paid ad placements.
  • Advise employees and customers to reach TradingView, Solana-branded applications, and Luno via bookmarks or manually-typed URLs rather than sponsored search/social ad results.

Workarounds

  • Restrict ServiceWorker/SharedWorker registration via enterprise browser policy for user segments (e.g., finance/trading desks) that do not require the feature.
  • Enforce browser download-protection settings (e.g., Chrome Enhanced Safe Browsing, Microsoft SmartScreen) requiring explicit confirmation before executing Windows binaries downloaded from unrecognized origins.

Longer-term hardening

  • Deploy browser or EDR telemetry that treats ServiceWorker-mediated, streamed file construction as its own detection category, since standard network logs will show only a benign runtime fetch and a JSON config response rather than a malicious file transfer.
  • Monitor the organization's own Google Ads, Meta Business, and Twitter/X Ads accounts for hijacking or lookalike-abuse patterns matching this campaign's ad-platform abuse playbook.
  • Flag Windows executables whose Mark-of-the-Web origin is a browser-download landing page (rather than a recognized software vendor) for additional scrutiny prior to execution.
  • Track threat-intel feeds and BeaconBeagle for newly disclosed SourTrade infrastructure (domains, hashes) as Confiant and follow-on researchers publish further indicators.

Timeline of SourTrade Malvertising

  • Per Bitdefender's September 27, 2025 report, monitoring of the related, unconfirmed-attribution 'TradingView Premium' malvertising cluster (JSCEAL/WeevilProxy) covered 'the past year,' placing that cluster's earliest tracked activity around September 2024 — concurrent with, but not confirmed to be operationally linked to, SourTrade's own late-2024 start.
  • SourTrade malvertising campaign begins operating, impersonating TradingView, Solana, and Luno via malicious ad placements; Confiant reports this start as 'late 2024' without a precise date.
  • Bitdefender publishes 'The Scam That Won't Quit,' documenting a related TradingView-impersonation malvertising cluster whose final payload is tracked as JSCEAL (Check Point) / WeevilProxy (WithSecure) / Trojan.Agent.GOSL (Bitdefender), with macOS and Android variants and over 500 rotating domains/subdomains supporting the operation; attribution to current SourTrade samples is not confirmed.
  • SourTrade operators phase out the earlier GitHub Pages-hosted StreamSaver.js technique for Mark-of-the-Web manipulation, transitioning toward the ServiceWorker/SharedWorker/Bun-runtime in-browser assembly method.
  • Confiant's disclosure additionally identifies approximately 96 malicious domains associated with the SourTrade campaign to date, alongside the three referenced-but-unpublished SHA-256 samples.
  • Confiant publishes 'SourTrade: Browser-Assembled Malware Delivered Through Malvertising,' detailing the ServiceWorker-orchestrated fragment-assembly technique, referencing three unpublished SHA-256 samples, and describing campaign scope across 12 countries and 25 languages.
  • Independent security-research outlets GBHackers, Cybersecurity News, Cyberpress, and Cryptika publish their own technical analyses of Confiant's SourTrade findings within roughly a day of the original disclosure, corroborating the ServiceWorker/SharedWorker/Bun-assembly technique and 12-country campaign scope; some of these outlets present IOC tables purporting to list the three SHA-256 sample hashes, but independent re-extraction found their published digit strings mutually inconsistent, so no hash value is treated as verified.
  • TL-Intel Harness ingests The Hacker News coverage of SourTrade via RSS and opens threat record TL-2026-1696 for research.
  • The Hacker News reports on Confiant's SourTrade findings, bringing broader public attention to the campaign.

Sources cited for SourTrade Malvertising

Threats related to SourTrade Malvertising

Detection coverage for TL-2026-1696

As of 2026-07-25, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1696 across Splunk SPL, Microsoft KQL and Sigma, covering 28 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Latest Threats