Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

syft-acp-uikitnpm

syft-acp-uikit is a confirmed malicious npm package (MAL-2026-10766) that opens a backdoor for remote access (malicious versions 1.0.0, 1.9.45). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in syft-acp-uikit (npm)

MAL-2026-10766
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall syft-acp-uikit

What this malware does

The syft-acp-uikit package was published to the npm registry by user 'ada8877' (maintainer email [email protected]) as part of a dependency-confusion / reconnaissance campaign. The package name mimics the 'syft-acp' internal/private package naming convention (an ACP component library) of a target organization, so that a misconfigured resolver installs this public lookalike instead of the intended private dependency.

The package declares a preinstall hook ("npm install @sentry/node && node examples/verify.js") that executes automatically at npm install time, before any application code runs. The bundled examples/verify.js initializes the @sentry/node client against a hardcoded, attacker-controlled Sentry DSN with sendDefaultPii enabled, resolves the installing host's public egress IP address by requesting Cloudflare's /cdn-cgi/trace endpoint (using a spoofed desktop-browser User-Agent to bypass bot challenges), then deliberately triggers a runtime exception and captures it. Flushing the event beacons the collected host telemetry (public IP plus Sentry default PII such as hostname, OS username and runtime/environment metadata) to the attacker's Sentry ingest endpoint at o4510485815754752.ingest.us.sentry.io.

Each impersonated namespace in the campaign beacons to a distinct Sentry project ID, letting the operator attribute successful installs to specific victim organizations — behaviour consistent with a dependency-confusion reconnaissance beacon rather than legitimate error monitoring. The install-time payload is byte-for-byte identical to the earlier 'click2ai' campaign, sharing the same Sentry organization (o4510485815754752) and a related ProtonMail maintainer identity, and differs only in the package name and target DSN. This package's beacon targets Sentry project 4511744089718784.

The package declares a preinstall script that runs examples/verify.js, which initializes @sentry/node against a hardcoded author-controlled Sentry DSN (https://e82e1244d311e1f83fd57d89db4d62a3@o4510485815754752.ingest.us.sentry.io/4511744089718784), fetches the installer's public egress IP via https://www.cloudflare.com/cdn-cgi/trace, triggers an error, and flushes a Sentry event carrying the resolved IP to the author's project on every npm install. src/index.js additionally hardcodes the same DSN as DEFAULT_DSN and sets sendDefaultPii: true, so consumers who call init() without an explicit dsn silently route their captured error events and PII to the same author-controlled destination. The package name evokes the unrelated 'syft' ecosystem and a UI toolkit while its actual code is a thin Sentry wrapper against an author-owned DSN, and the README is a two-line stub — a name/behavior mismatch consistent with an impersonation lure.

Malicious versions

2 flagged
1.0.01.9.45

Indicators of compromise (SHA-256)

694d28b5d3d4fc19b2dc3399b982cc5333b4bc73fcdd45754194e9689737ee18
ebebc8c4bd637b252ec48552b67e795fc287f8d8fc314d3b35e4b090f5f1d9e3

Detection & response playbook

Backdoor / remote access
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for syft-acp-uikit (2 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging syft-acp-uikit across your stack and pipelines.

  2. If you installed it — respond

    syft-acp-uikit establishes remote access, so treat any host that installed it as fully compromised. Isolate the machine, remove the package, rotate all credentials it could reach, and rebuild from a trusted image rather than cleaning in place — a backdoor may have planted additional persistence.

  3. Did it already run?

    If syft-acp-uikit was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks syft-acp-uikit before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. syft-acp-uikit on npm has been identified as a malicious package (versions 1.0.0, 1.9.45 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-011308IN-MAL-2026-016544

References

Credits

  • Amazon Inspector · finder
  • SafeDep · finder

Detect & block this

O3 blocks syft-acp-uikit-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the C2 callback and severs the channel.

Explore

syft-acp-uikit (npm) malicious package — MAL-2026-10766 | O3 Security