2026-09-10 · view entry permalink →
BlueMoon: six separate state-nexus actor clusters independently weaponize a shared Chrome V8 + Windows kernel zero-day chain
Proofpoint documents BlueMoon, a newly named exploit kit chaining a Chrome V8 JIT type-confusion bug (CVE-2026-85046) with an uncredentialed V8 sandbox escape and a Windows kernel ALPC/WNF heap-overflow local-privilege-escalation flaw (CVE-2026-85880) into a single click-to-SYSTEM chain (Proofpoint, 2026-09-08). The V8 bugs were a patch-gap zero-day: "the change containing the fix for CVE-2026-85046 was committed on 7 August 2026 but was not rolled into the general stable Chromium build until 3 September 2026" (Proofpoint, 2026-09-08), a nearly four-week window during which the public upstream diff let an exploit developer reverse-engineer and weaponize the bug before Chrome's stable channel shipped it; CVE-2026-85880 was separately patched by Microsoft as part of its September 2026 Patch Tuesday updates (The Hacker News, 2026-09-09); the referenced 2026-09-09 Windows entry covers Microsoft's own MSRC confirmation that it was exploited in the wild. After the browser-side chain achieves code execution and escapes the renderer sandbox, a reflectively loaded DLL fingerprints the host to decide whether to run the kernel LPE against a specific list of Windows builds, Proofpoint's own table names Windows 10 1809/2004/20H2/21H1/21H2/22H2, Windows 11 21H2's initial release build, and Server 2019/2022, a wider list than Microsoft's own advisory for this CVE, which describes the legacy line only and states it does not affect Windows 11 (Contradiction, unresolved here), then a process-injection stub runs an operator-supplied command inside the Chrome broker process, by default a plain curl download-and-execute, a deliberately crude step Proofpoint reads as evidence the developer traded stealth for speed. Four distinct espionage clusters adopted the identical kit within days of each other by Proofpoint's original count (a fifth, documented below, started 2026-09-01, within that same one-week span), each with its own delivery and payload: TA412/APT31 (from 2026-08-28) used student-internship and academic-conference spearphishing against US NGOs, mining and commodity-trading firms to install a malicious Chromium extension disguised as "Google Gemini" (GemStone), using an HMAC-forgery technique, named GhostChrome-X by outside researchers (The Hacker News, 2026-09-09), against Chrome's Secure Preferences integrity check so the extension survives the browser's own unauthorized-extension protection; GemStone keylogs, steals cookies/session storage, screenshots on keyword match and polls its C2 every 30 seconds to 60 minutes. UNK_LateNight (from 2026-09-02) targeted US aerospace/defense firms with B2B/RFQ lures to sideload the ShadowPad backdoor via a scheduled task. UNK_DoubleCheck (from 2026-09-02) phished a Vietnamese manufacturer from a compromised Southeast Asian government mailbox, obfuscating its loader and staging a second DLL from a Cloudflare R2 bucket. UNK_QuietRacket (from 2026-09-03) targeted government, consulting and financial-sector organizations in Indonesia and Singapore with conference-themed lures, resolving C2 entirely through DNS-over-HTTPS TXT-record lookups to a Cloudflare Worker. A Proofpoint researcher assessed the near-identical, simultaneous adoption as deliberate distribution rather than independent discovery: "there's no way that this is parallel development. The code is practically identical, even the variable naming, the commentary. It's the same kit. One hundred percent" (Mark Kelly, Proofpoint, via The Record, 2026-09-09). Patching Chrome and Windows closes the entry vector but removes nothing already installed, the GemStone extension, ShadowPad's DLL-sideload persistence, and the other clusters' scheduled tasks all survive a patch untouched.
Triage: a process tree rooted at the browser (browser → command shell → curl or a download utility → a newly dropped executable) is the chain's own crude final stage and a strong discriminator on its own; a scheduled task created immediately following a browser-initiated download narrows it further, since legitimate browser activity does not normally create scheduled tasks.
The change containing the fix for CVE-2026-85046 was committed on 7 August 2026 but was not rolled into the general stable Chromium build until 3 September 2026.
While CVE-2026-85046 was patched by Google last week, CVE-2026-85880 was addressed by Microsoft as part of its September 2026 Patch Tuesday updates.
There’s no way that this is parallel development. The code is practically identical, even the variable naming, the commentary. It’s the same kit. One hundred percent.
Targets so far: NGO, Government, Consulting, Finance, Mining, Commodity Trading
The exploit first gains arbitrary read/write within the V8 sandbox through the Type confusion vulnerability (CVE-2026-85046), then combines a separate WebAssembly defect to escape the V8 sandbox (CVE-2026-87491). It then exploits a third vulnerability in the Windows kernel (CVE-2026-85880)
Volexity tracks this malware as GRIMWEDGE.
constructing a victim-specific URL using the victim device’s hostname
with a tab-delimited body containing the victim’s domain, username, and any command output from the loop’s previous run. HTTP responses to POST requests are evaluated as JScript code.
NCSC Switzerland's own Cyber Security Hub advisory lists this chain's targets so far as "NGO, Government, Consulting, Finance, Mining, Commodity Trading" while stating no case has yet been reported in Switzerland (NCSC Switzerland, 2026-09-12). Volexity's own technical write-up, cited in that advisory, supplies the exploit chain's previously missing middle link: "the exploit first gains arbitrary read/write within the V8 sandbox through the Type confusion vulnerability (CVE-2026-85046), then combines a separate WebAssembly defect to escape the V8 sandbox (CVE-2026-87491)," before the Windows kernel flaw completes the escape to full code execution in the browser process (Volexity, 2026-09-09). Volexity names a fifth operator, UTA0560, which reached the chain through a reflected cross-site-scripting flaw on a legitimate US university website, unlike JungleBamboo's own delivery via attacker-registered domains fronted by Cloudflare Tunnels, and deployed GRIMWEDGE, an in-memory JScript backdoor under 250 lines that runs as an evaluated string inside msiexec.exe. Delivery chains through a dropper (msgbox.exe) that sideloads wsc.dll; wsc.dll beacons to a per-victim URL keyed on hostname to fetch and launch the next-stage MSI payload via msiexec.exe, and GRIMWEDGE itself, once running, instead sends HTTP POST requests carrying the victim's domain, username and prior command output to a single fixed command-and-control URL, with server responses evaluated as script; GRIMWEDGE supports ten commands including file read/upload, process control and command execution. Volexity separately documents JungleBamboo's (APT31/TA412) own payload chain: a loader it names SUPERSTOMP tampers with Chrome's Secure Preferences file, stripping and forging the per-preference integrity values to smuggle in a malicious extension impersonating "Google Gemini" past Chrome's own tamper checks; the resulting extension, LONGTALE, keylogs every keystroke and form or clipboard value across all open tabs, steals cookies and web-storage tokens, and takes keyword-triggered screenshots, exfiltrating collected data roughly every 30 seconds. This mechanism and disguise match Proofpoint's own GemStone/GhostChrome-X description of the same actor's tooling closely enough that the two vendor names may describe the same artifact rather than two distinct ones; neither vendor's own report confirms this directly, so both names are carried here without merging them.
An unexpected process loading wsc.dll and beaconing outbound over HTTPS to a per-hostname URL path, followed shortly by an msiexec.exe process installing whatever that beacon returned, is UTA0560's dropper-stage signature; a msiexec.exe process making repeated outbound HTTP POST requests to the same fixed destination with no corresponding user-initiated software installation is the discriminator for the GRIMWEDGE backdoor stage that follows it. A Chrome extension whose Secure Preferences integrity hash was set by a process other than Chrome itself, or that requests clipboard and all-tab permissions while impersonating a well-known AI-assistant name, is JungleBamboo's LONGTALE signature. Both persistence mechanisms, like the original entry's, survive the underlying browser and OS patches untouched.
A sixth cluster has been documented running this chain. Volexity's follow-up reporting names UTA0565, a China-nexus actor that exploited all three flaws on 3 and 4 September 2026, while every one of them was still unpatched (Volexity, 2026-09-21). The exploit kit itself is essentially unchanged: the embedded stage binaries are identical to the previously reported payloads, and the core exploit logic, version checks and stage sequencing are the same.
What differs is the delivery, and it is the part worth hunting on. Rather than the redirect-through-a-legitimate-site route the earlier operators used, UTA0565 sent phishing mail linking to domains it had registered itself to impersonate China Digital Times and the Center for American Progress, one lure urging support for an imprisoned Hong Kong activist and sent to Asian government entities, the other masquerading as the US policy institute. The one page still live when Volexity analysed it loaded most of its content from the legitimate site it copied and added the exploit components in a hidden, zero-sized iframe, so the page a victim saw was the real organization's content. The other site was already offline by then and is confirmed only as a visual clone of the outlet it impersonated, from a cached scan of the host that served it, so the same delivery mechanism is inferred there rather than observed. The final stage also changed: instead of a shell command that fetched and ran the payload, the kit now downloads the executable in-process, strips its Mark of the Web, and launches it through the Windows shell using COM, which removes both the command-line artifact and the zone-identifier evidence that earlier variants left behind.
The payload is a family Volexity had not previously documented and names CLEANGULP: a C binary obfuscated with control-flow flattening and indirect calls, installed under the user's local application-data path and persisted by a scheduled task, both named after a Microsoft input-method-editor component. Volexity assesses with high confidence that it supports command execution, process listing, file upload and download, and execution of beacon object files. Its command-and-control traffic runs over plain HTTP to a domain typosquatting a news publisher, with request and response bodies encrypted with AES-256-GCM and then encoded in a custom Base64 alphabet, the encryption key being derived from that alphabet string itself. Volexity pivoted on the registration pattern of the domains involved and assesses with medium confidence that several further domains, spanning spoofed media organizations, halal restaurant search sites and corporate training organizations, belong to the same campaigns.
For defenders the hunt moves one step earlier in the chain than the previous coverage suggested. A scheduled task and an executable both carrying an input-method-editor name under the user's local application-data tree, with no corresponding software deployment, is the on-host artifact; outbound HTTP carrying opaque binary bodies to a domain that is one transposition away from a news publisher the organization actually reads is the network one. Because the payload is launched through COM after an in-process download, process-lineage detections keyed on a browser spawning a command interpreter will not see this variant.
Builds on: 2026-09-04/cve-2026-85046-chrome-v8-type-confusion-exploited · 2026-09-09/windows-september-2026-two-exploited-lpe-zero-days-kev · 2026-09-10/cve-2026-87491-chrome-v8-oob-write-seventh-2026-zero-day