MAL-2026-5403Malicious code in t-invest-mcp-server (npm)
| Ecosystem | Package | Version |
|---|---|---|
| npm | t-invest-mcp-server | 9999.99.99 |
{"modified":"2026-06-09T17:01:45Z","published":"2026-06-09T16:04:28Z","schema_version":"1.7.4","id":"MAL-2026-5403","summary":"Malicious code in t-invest-mcp-server (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (46c186ac158f68845fc995a94d15d44c2b65a521d2619d2850232e58f4a61419)\nPackage is a dependency-confusion squat: package.json sets version 9999.99.99 (the canonical max-version trick used to win resolution against any internal/private package of the same name), the description self-identifies as a 404 placeholder, and index.js does `module.exports = require('t-invest-mcp-server')` (a recursive self-reference that provides no functionality). The package exists solely to fire its postinstall hook. postinstall.js collects package name/version, Node version, OS, CI flag, GITHUB_REPOSITORY, GITHUB_REPOSITORY_OWNER, GITHUB_WORKFLOW, and a timestamp, then POSTs them as JSON to https://ddactic-lab.online/sc/beacon at npm install time. A DNS-lookup fallback encodes the same data into a subdomain of b.ddactic-lab.online to exfiltrate through HTTP-blocking egress proxies. This is dependency-confusion reconnaissance: it fingerprints victim organizations and repositories whose builds mistakenly resolve the private name to the public registry, providing the attacker with a target list for follow-on attacks.\n","affected":[{"package":{"ecosystem":"npm","name":"t-invest-mcp-server"},"versions":["9999.99.99"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"domains":["ddactic-lab.online","t-invest-mcp-server.none.5384aca8.b.ddactic-lab.online","t-invest-mcp-server.none.5384aca8.b.ddactic-lab.online.ec2.internal"],"evidence_files":[{"path":"postinstall.js","sha256":"e5c7efaa25bd6fc20c40fe6e39a40957043022e78b5ec6d9ad2b9e49a3ef75c8","tlsh":"e241a755829891340fe122c9b852c8165d7bd49633e799f0774d15226fc92bc03b2fdf"},{"path":"package.json","sha256":"5af0f16e21bd47aba1fb24536ed9c7fce091311b3b991d8f5cf4a2ee2bdfbdfd","tlsh":"acf05510897296373fdc36e48c6b318673360d87c1487c0833e70219878e4a780be1a9"}],"package_integrity":[{"filename":"t-invest-mcp-server-9999.99.99.tgz","hashes":{"sha1":"8735dcb6800da5317d1c099f1ac414d7886164b3","sha512_sri":"sha512-pHJPWAPgxLjN+NT/RxrxaI2FbmVD4NGqluBxgpg/Koip1xFwOCatif895/KcHYbO266ib/+S6xpazYExNOK+mw=="}}]}}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/t-invest-mcp-server/v/9999.99.99"}],"credits":[{"name":"Amazon Inspector","type":"FINDER","contact":["inspector-research@amazon.com"]}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-004947","import_time":"2026-06-09T16:59:43.860429236Z","modified_time":"2026-06-09T16:04:28Z","sha256":"46c186ac158f68845fc995a94d15d44c2b65a521d2619d2850232e58f4a61419","source":"amazon-inspector","versions":["9999.99.99"]},{"id":"IN-MAL-2026-004948","import_time":"2026-06-09T16:59:43.911996588Z","modified_time":"2026-06-09T16:04:28Z","sha256":"6425f1819430833151f1a0e34dff1c77cccd743adc5f254e65c32ce24f023e27","source":"amazon-inspector","versions":["9999.99.99"]}]}}数据来源:OpenSSF Malicious Packages · Apache-2.0