MAL-2026-13417 Malicious code in @ccfly/setup-linux-arm64 (npm)
Malicious package
Published
MAL-2026-13417 is a malicious package: @ccfly/setup-linux-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-13417/ (Markdown: https://insights.sbomify.com/MAL-2026-13417/index.md)
- Package
- @ccfly/setup-linux-arm64
- Registry
- npm
What is MAL-2026-13417?
MAL-2026-13417 is a malicious package in @ccfly/setup-linux-arm64, published on 6 Aug 2026.
Official description
The package ships a 6.3 MB linux/arm64 Go binary at bin/ccfly-setup. The binary embeds github.com/creack/pty (PTY spawner) and github.com/gorilla/websocket alongside internal packages github.com/ccfly/rescue/internal/{agent,setup,proto}, and contains hardcoded remote endpoints ws://ccflycc.hn, wss://…, https://cc.hn, and latest.ccfly, together with strings such as 'approveccfly-install' and '客户端已安装并配对' ('client installed and paired'). The binary dials the hardcoded ccfly server over WebSocket and bridges the connection to a locally spawned PTY, giving the remote endpoint an interactive shell on the host that runs it — a persistent remote-access channel controlled by whoever operates ccfly.hn. package.json declares os:linux, cpu:arm64, files:['bin'], and no scripts or bin map, so this sub-package alone is not auto-executed on npm install; it is a platform-optional payload intended to be resolved as an optionalDependency of a parent @ccfly/ wrapper, which then invokes bin/ccfly-setup and activates the remote-PTY channel on the installer's machine.
What should I do about MAL-2026-13417?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.