# MAL-2026-12084: Malicious code in @ccfly/setup-darwin-arm64 (npm)


- **Type:** Malicious package
- **Package:** `@ccfly/setup-darwin-arm64` (npm)
- **Published:** 5 Aug 2026

## What is MAL-2026-12084?

MAL-2026-12084 is a malicious package in @ccfly/setup-darwin-arm64, published on 5 Aug 2026. 

### Official description

The tarball ships a single 6.4 MB Go binary at bin/ccfly-setup for darwin/arm64. The binary links github.com/gorilla/websocket and github.com/creack/pty and contains hardcoded strings 'wss://', 'ws://ccfly', and host 'cc.hn' alongside os/exec.Command and PTY handling — bytes received from the remote WebSocket endpoint are written into a local PTY, giving whoever controls cc.hn command execution on the host running the binary. Additional binary strings ('anthropic.com', 'claude.ai', '127.0.0.1:443', '.zshrc', '.bash_profile', 'export', 'approveccfly-*/redeem', 'https://cc.hn') show the binary also stands up a local 127.0.0.1:443 listener and writes export lines into ~/.zshrc and ~/.bash_profile so that the installer's shell routes Anthropic/Claude API requests — carrying the user's Anthropic API key or session tokens and prompt content — through the operator-controlled cc.hn infrastructure. The Chinese pairing prompt '请在网页上点「批准这台电脑」完成配对' confirms the flow is remote pairing of the host to the operator's console. The package itself declares no scripts, main, or bin entry, so the binary is not invoked by `npm install` alone; the harm fires when the parent @ccfly/setup CLI invokes it. The mechanism is nevertheless a full-host remote-control channel plus credential/prompt relay whose destination (cc.hn) is hardcoded and not caller-configured.

## What should I do about MAL-2026-12084?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-12084 is a malicious package: @ccfly/setup-darwin-arm64 (npm). Every version was published to cause harm.

Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.

Reference: https://insights.sbomify.com/MAL-2026-12084/ (Markdown: https://insights.sbomify.com/MAL-2026-12084/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-12084

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-12084/
Summaries are generated and may contain mistakes; the official description above is the record.
