← All news
Threat IntelligenceVulnerability ManagementAI Security

The Fix Was Public on August 7. It Reached Your Browser Four Weeks Later. Four Espionage Groups Used the Gap

Obiguard Research Team·September 10, 2026·9 min read

Threat intelligence has a working assumption underneath it that almost nobody writes down. It is that capability is a fingerprint. A browser exploit chain is expensive, so the group that has one guards it, and when you find it in your network you have learned something about who is standing there. Half of enterprise threat modelling runs on that assumption: this actor targets our sector, that one does not, prioritise accordingly.

Last week that assumption stopped holding, in public, with receipts.

Proofpoint published research on an exploit kit it calls BlueMoon, and the finding that matters is not the exploit. It is that at least four distinct espionage clusters were running it within roughly a week of each other, and the code was the same code. The Record quoted Proofpoint threat researcher Mark Kelly directly: "The code is practically identical — even the variable naming, the commentary. It's the same kit."

What BlueMoon actually is

The kit is a three-stage browser-to-kernel chain, delivered by phishing to a victim who does nothing more unusual than click a link. Cyber Security News published a technical breakdown on September 9, 2026:

  1. CVE-2026-85046 — a type-confusion bug in Chromium's V8 JavaScript engine, abusing a JIT optimisation flaw to get remote code execution inside the browser renderer. Google rates it CVSS 8.8.
  2. A V8 sandbox escape with no CVE assigned, which corrupts WebAssembly module metadata to overwrite compiled function bodies with attacker shellcode.
  3. CVE-2026-85880 — a Windows kernel local privilege escalation abusing Advanced Local Procedure Call and the Windows Notification Facility.

Renderer, sandbox, kernel. One click, full host, no user interaction beyond the click and no file the user consciously ran.

The clusters using it, per Proofpoint, are TA412 (also tracked as Violet Typhoon, APT31 and RedBravo), whose first confirmed BlueMoon campaign was August 28, 2026, plus UNK_LateNight, UNK_DoubleCheck and UNK_QuietRacket, with additional activity suspected. The majority carry a suspected China nexus. Targeting spans US NGOs, mining and commodity trading firms, US aerospace and defence, Vietnamese manufacturing, and government and commercial organisations in Singapore and Indonesia.

The payloads diverge even where the entry does not. TA412 installed GemStone, a malicious browser extension. UNK_LateNight delivered ShadowPad via DLL sideloading. UNK_DoubleCheck used a Rust loader. UNK_QuietRacket ran command-and-control over DNS-over-HTTPS. Same front door, four different tenants.

The patch gap is the story

Both Chrome-side bugs were patch-gap zero-days. That phrase deserves unpacking, because it is not the same thing as a zero-day in the usual sense.

Chromium is open source. When Google fixes a V8 bug, the fix lands in the public source tree, and it lands there before it reaches the stable Chrome that people actually run. Anyone watching the commit stream sees the patch. And a patch is a specification: it tells you exactly which code was wrong, what the correct behaviour should have been, and by subtraction, what you could have done with the incorrect version.

The upstream fix for CVE-2026-85046 was committed on August 7, 2026. Google shipped it to stable Chrome — 152.0.7977.82/.83 on Windows and macOS, .82 on Linux — in the first days of September, confirming an exploit existed in the wild without naming campaigns. That is roughly a four-week window in which the vulnerability was described in public and unfixed on every stable browser in your estate.

TA412 was operating on August 28. They had four fewer days than the window allowed.

Why the window is closing faster than the window is shrinking

Patch gaps are old. Browser vendors have lived with them for a decade, on the reasoning that the reverse-engineering work is hard enough, and the exploitation work hard enough on top of that, that the gap is survivable for most users most of the time. It was a calculated bet about attacker cost.

Kelly's assessment, reported by The Register, is that the bet is being repriced. He described BlueMoon as "developed and deployed rapidly, and shared across multiple threat actors within days," and attributed the speed to AI agents lowering "cost and barrier to entry for this class of capability" — historically rare and expensive. Proofpoint's researchers pointed at the artefacts they could see in the kit itself: extensive diagnostic logging and verbose debugging commentary, consistent with AI-assisted development rather than the terse hand-tuned code exploit developers usually ship.

Treat that as an assessment, not a proof. Verbose comments are evidence of a style, not of a tool. But it is the same direction of travel that Google Threat Intelligence Group described this week when malware started embedding jailbreak prompts to blind LLM code scanners — AI moving from the thing attackers target to a routine part of the attacker toolchain, at both ends of it.

And Proofpoint's forward-looking warning is the operationally useful part: rapid exploit development leveraging the open-source patch gap is likely to recur beyond BlueMoon. If turning a public Chromium commit into a working chain has gone from months to weeks, then every browser patch gap from here is a scheduled, announced, dated exposure window rather than a theoretical one.

The payload was a browser extension called "Google Gemini"

GemStone deserves its own line. TA412's chain terminated in a Chromium extension masquerading as Google Gemini, which gave the operators a command channel, cookie and credential theft, screenshots, and keylogger injection into browser tabs.

We wrote two days ago about why extension permission review has stopped discriminating: a legitimate AI browser assistant needs cookies, all-URLs, tabs and scripting, so the manifest that should be a red flag is now the manifest of an entire product category. BlueMoon is the same observation arriving from the other direction. The attacker did not have to make a malicious extension look plausible. They picked the most plausible name available in 2026 and did not have to ask for the permissions at all, because by that stage they had kernel privileges and could write the profile directly.

An extension named after a mainstream AI assistant, appearing on an endpoint, is now genuinely ambiguous. That ambiguity is an asset the attacker did not have to build.

What is worth doing this week

None of this is large:

  • Confirm stable Chrome and Edge are actually at or above the September build across the estate — from the endpoints, not from the policy. Managed update policies with a deferral window are exactly what turns a four-week vendor patch gap into a seven-week organisational one.
  • Check CVE-2026-85880 against your Windows patch state. The kernel LPE is what turns a renderer bug into a lost host. Patching one half of a chain breaks the chain, and this is the half you control on your own schedule.
  • Stop triaging browser exploitation by actor. If four clusters share a kit within a week, "does this group target us?" is no longer a filter that reduces your work — it is a filter that discards true positives. Triage on the technique: renderer process spawning a child, chrome.exe writing to an extension directory outside an update, ALPC or WNF abuse patterns on the host.
  • Inventory extensions written to profiles outside the Web Store update path. GemStone did not install itself the way a user installs something.
  • Watch DNS-over-HTTPS egress from endpoints. UNK_QuietRacket's channel is invisible to anything inspecting plaintext DNS, and DoH from a host that should be using your resolver is a control failure before it is a detection.

Where Obiguard fits

This is a detection and response problem, and we should say plainly that no governance platform patches Chrome.

What it changes is whether the ambiguity above is answerable. Obiguard SOC is built for the case where the same technique arrives from four different origins and the question is not who but what happened on this host, in what order, and does the sequence make sense. Detection engineering keyed to actor-specific indicators degrades the moment a kit is shared; detection keyed to the chain — renderer child process, then privilege escalation primitive, then an extension appearing in a profile, then a fixed-cadence encrypted channel out — does not care which of the four clusters is driving. The shared-kit finding is an argument for behaviour-based detection with a specific, dated incident attached to it, which is the version of that argument that gets budget.

The AI-assistant ambiguity is where Governance AI does real work. If your organisation has decided which AI tools it has, then an extension calling itself Google Gemini is not a judgement call for a tier-1 analyst at 2am — it is an item that is not on the list. Allow-lists make that decision once, centrally, instead of every time an analyst sees a plausible name; the audit ledger is append-only and streams off the host, which matters when the endpoint reporting on itself is the endpoint with kernel-level malware on it. We made that last point when an implant edited the traffic counters its victims were monitoring, and it holds here for the same reason.

The uncomfortable part

For years, the expense of a browser exploit chain was doing quiet work on your behalf. It kept the number of adversaries who could reach a fully patched endpoint small, and it made capability a reliable signal about identity. BlueMoon is one data point, not a trend, and one kit shared among four aligned groups is not the same as commoditisation.

But the mechanism Proofpoint describes has no natural brake. The patch gap is a structural property of shipping an open-source browser. The reverse-engineering that used to fill it was the expensive part, and that is precisely the part getting cheaper. If both halves of that hold, the interesting question is not who used BlueMoon — it is how many groups will be able to build the next one themselves, and how much shorter the gap between the commit and the campaign gets.

Plan for the version where the exploit tells you nothing about the attacker.

Explore Obiguard SOC or talk to us about detection that survives shared tooling — and about how quickly you could answer, right now, which endpoints are still running a pre-September Chrome.

How Obiguard helps

Turn this into enforced policy, not just awareness.

Obiguard sits in front of every AI request your organization makes — screening prompts and outputs against the guardrails, compliance frameworks, and audit trails that stories like this one make necessary.

See how it works →