MAL-2026-10764Malicious code in syft-acp-atoms (npm)
| Ecosystem | Package | Version |
|---|---|---|
| npm | syft-acp-atoms | * |
| npm | syft-acp-atoms | 1.0.0 |
| npm | syft-acp-atoms | 14.8.68 |
{"schema_version":"1.7.4","id":"MAL-2026-10764","published":"2026-07-16T00:00:00Z","modified":"2026-08-06T14:21:56.296975507Z","summary":"Malicious code in syft-acp-atoms (npm)","details":"The syft-acp-atoms package was published to the npm registry by user 'ada8877' (maintainer email k3mlol@proton.me) 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.\n\nThe 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.\n\nEach 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.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (74ddca6430f87ddf8a19eed0ed269e147b577c055d399bec7ca1fed6fa1d75f1)\nOn npm install, the package's postinstall hook (`node./beacon.js`) collects the installer's hostname, OS username, and current working directory via os.hostname(), os.userInfo(), and process.cwd(), hex-encodes them, and transmits them as a query string to https://exzotiqq.com/ via https.get. The package ships no library code — the declared `main: index.js` is absent from the tarball — so the only effect of installing the package is to run the beacon. Behavior is consistent with a reconnaissance / dependency-confusion probe.\n","affected":[{"package":{"name":"syft-acp-atoms","ecosystem":"npm"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"versions":["14.8.68","1.0.0"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"beacon.js","sha256":"3f7ad756c7555768c986eaf75bb032b4ce4524dd80d923200dcc58307a836ee5","tlsh":"5ed097f502f0d3b81c9000c1e080fd0ba1d38b12305150e19e6943aaab40ab08e00ee8"},{"path":"package.json","sha256":"04937c443560bda82738c3125a8cbb7a3b83953dbec65e565ce6e9701bc36b80","tlsh":"f1c022608860892320c98ad7043860051560ce0b1008284d23c72060d2c9b7748bbb0e"}],"package_integrity":[{"filename":"syft-acp-atoms-14.8.68.tgz","hashes":{"sha1":"667b6a09a0db697dc3be0044095548008506977c","sha512_sri":"sha512-KeRroQSaUoddsujLRKAQNC04Y2qSfBY2rawnXMAITIZFmkB1bk5o5EW4G5Q1ayhgQNiHajR0Q8ZNA1R8B49QEA=="}}]},"iocs":{"domains":["o4510485815754752.ingest.us.sentry.io"],"urls":["https://e82e1244d311e1f83fd57d89db4d62a3@o4510485815754752.ingest.us.sentry.io/4511744089718784"]}}}],"references":[{"type":"WEB","url":"https://www.npmjs.com/package/syft-acp-atoms"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/syft-acp-atoms/v/14.8.68"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/syft-acp-atoms/v/1.0.0"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-013390","import_time":"2026-08-05T07:06:45.075038991Z","modified_time":"2026-08-05T06:16:19Z","sha256":"7ed8acd69ab483ef58fdeea92d871264713661755e025eb16d7f3b34be02f9b4","source":"amazon-inspector","versions":["14.8.68"]},{"id":"IN-MAL-2026-016543","import_time":"2026-08-06T14:19:54.636949693Z","modified_time":"2026-08-06T13:56:07Z","sha256":"74ddca6430f87ddf8a19eed0ed269e147b577c055d399bec7ca1fed6fa1d75f1","source":"amazon-inspector","versions":["1.0.0"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"SafeDep","contact":["https://safedep.io"],"type":"FINDER"}]}数据来源:OpenSSF Malicious Packages · Apache-2.0