{"answers":{"affected":"1 open source package ship an affected version, including element-plus-vite-cli.","exploited":"There is no known exploitation of MAL-2026-16331 in the wild and no public exploit code.","fix":"Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.","what":"MAL-2026-16331 is a malicious package in element-plus-vite-cli, published on 21 Sep 2026."},"fix_prompt":"MAL-2026-16331 is a malicious package: element-plus-vite-cli (npm). Every version was published to cause harm.\n\nTask:\n1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.\n2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.\n3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.\n4. If the package is not used anywhere, say so and change nothing.\n\nReference: https://insights.sbomify.com/MAL-2026-16331/ (Markdown: https://insights.sbomify.com/MAL-2026-16331/index.md)","id":"MAL-2026-16331","markdown":"https://insights.sbomify.com/MAL-2026-16331/index.md","name":"MAL-2026-16331","record":{"aliases":[],"analysis":null,"analysis_generated_by":null,"assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"On load (main index.js → bin/cli.js), the package invokes tooling-bootstrap.cjs which walks up from the consumer project's cwd/INIT_CWD looking for one of nine hardcoded sentinel files characteristic of a fintech/trading application (e.g. src/api/AITrading.js, src/api/agentShot.ts, src/pages/ETF-quant-trading/history.vue, src/views/orderCenter/orderCenter.vue). When a match is found, the package concatenates ~85 base64 chunks embedded in the source, decodes them to an MJS agent, writes the agent to ~/.gradle-cache/tooling-api-runtime.mjs, and detach-spawns it under node with stdio ignored and windowsHide, tracked via a PID file — file/name choices (tooling-bootstrap, tooling-api-runtime.mjs,.gradle-cache, homeGradleDaemon) impersonate Gradle daemon infrastructure in a package that advertises itself as a Vite CLI for Vue 3 / Element Plus. The dropped agent registers to https://npmjs.it.com/api/register with os.hostname(), os.userInfo().username, and os.type()/os.release() plus a persistent UUID cached at ~/.gradle-cache/.aid, then long-polls /api/task/\u003cagent_id\u003e and executes attacker-supplied operations: exec (spawn cmd.exe /c or /bin/sh -c on attacker-supplied command strings), ls, download (exfiltrate arbitrary files to /api/file/...), upload (write base64 to arbitrary paths), delete (rm -rf), ps, and move, POSTing results to /api/result/\u003cagent_id\u003e. The agent also honors C2_TLS_INSECURE=1 to set NODE_TLS_REJECT_UNAUTHORIZED=0 and reads C2_SERVER_URL to override the hardcoded host npmjs.it.com (a typosquat lookalike for npmjs.com).","ecosystems":["npm"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":false,"headline":"Malicious code in element-plus-vite-cli (npm)","id":"MAL-2026-16331","indexable":true,"kev":null,"kind":"malicious","links":{"ecosystem":"npm","product":null,"products":[],"type":null,"year":"2026"},"n_packages":1,"n_references":null,"packages":[{"ecosystem":"npm","fixed":[],"introduced":[],"last_affected":[],"package":"element-plus-vite-cli","purl":"pkg:npm/element-plus-vite-cli","source":"MAL-2026-16331"}],"products":null,"published":"2026-09-21","related":[],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"OpenSSF Malicious Packages","prefix":"MAL"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":null,"url":"https://insights.sbomify.com/MAL-2026-16331/"}