目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%
← 返回恶意软件包
npm active

@across-toolkit/typescript-config

MAL-2026-10704
2026-07-24 07:22:30
OpenSSF Malicious Packages
该软件包被识别为恶意包。建议隔离受影响环境,并排查凭据泄露和异常网络连接。

Summary

Malicious code in @across-toolkit/typescript-config (npm)

凭据/密钥窃取安装阶段执行文件/数据外传
AI 分析整理qwen3.6
基于上游报告生成,请以下方原始证据为准。
公开使用量数据
统计周期
last-week
下载量
—
数据源
npmjs.org
下载量只代表仓库活动度,不等于已被入侵的安装数量。
受影响版本
EcosystemPackageVersion
npm@across-toolkit/typescript-config99.0.0
npm@across-toolkit/typescript-config99.0.1
恶意行为说明OpenSSF OSV
上游来源证据
展开原始 OSV JSON
{"modified":"2026-07-24T07:22:30Z","published":"2026-07-16T00:00:00Z","schema_version":"1.7.4","id":"MAL-2026-10704","summary":"Malicious code in @across-toolkit/typescript-config (npm)","details":"The npm package `@across-toolkit/typescript-config` is a dependency-confusion credential stealer targeting developers of Across Protocol (across.to). It masquerades as an internal ESLint/TypeScript config for the `across.to` toolkit and publishes an implausibly high version (`99.0.0`) so that a misconfigured install resolves it from the public npm registry instead of a private package of the same name — the standard dependency-confusion technique.\n\nA `postinstall` lifecycle hook (`postinstall: node postinstall.js`) executes automatically on `npm install`, before the package is ever imported. Using `os.homedir()`, the payload reads the host's AWS credentials (`~/.aws/credentials`), SSH private key (`~/.ssh/id_rsa`) and npm token (`~/.npmrc`), collects `process.env`, and exfiltrates the data via an HTTP `POST` to a hardcoded `webhook.site` endpoint (`https://webhook.site/a585f4ec-20f7-4bd1-bac7-f3e53799dc5f`). The payload is present in both the root `postinstall.js` and a nested `eslint-config/postinstall.js`, and uses `child_process`. Any developer workstation or CI runner that installs the package hands the operator AWS credentials, an SSH private key and an npm publish token.\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (5580d26d1829c9faf6465962431399aee9804c8ed1264274b30b9ce42f274bd9)\nPackage impersonates the across-protocol organization (published as @across-toolkit/typescript-config@99.0.0, a high-version dependency-confusion shape) and ships two postinstall stealer scripts that run automatically on npm install. postinstall.js and eslint-config/postinstall.js read installer-owned secrets from ~/.aws/credentials, ~/.aws/config, ~/.ssh/id_rsa, ~/.ssh/id_ed25519, ~/.npmrc, ~/.gitconfig,.env files, /etc/environment, /proc/1/environ, and gcloud application default credentials, and query cloud instance metadata services at http://metadata.google.internal/computeMetadata/v1/ (with the Metadata-Flavor: Google header) and http://169.254.169.254/ for IAM security credentials and OAuth tokens. The collected files, IMDS responses, and a base64-encoded copy of process.env (including NPM_TOKEN) are POSTed via https.request to two hardcoded webhook.site collectors (paths /a585f4ec-20f7-4bd1-bac7-f3e53799dc5f and /12b523e2-ee58-4598-8fe1-bbf1f3999550). The declared package purpose is a shared tsconfig; the network exfiltration and credential harvesting have no relation to that purpose.\n","affected":[{"package":{"ecosystem":"npm","name":"@across-toolkit/typescript-config"},"versions":["99.0.0","99.0.1"],"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"}],"indicators":{"evidence_files":[{"path":"postinstall.js","sha256":"41f31f3699b60c7002b6957e89cac446dbd840b87bac4852f76a56a3a7e7a08b","tlsh":"bd5183d42df2706816d3fa59e25fa805a127e10b7d06e9d4f9dc08200f9e52ca6b29dc"},{"path":"eslint-config/postinstall.js","sha256":"236544b401ec5b4c50544816f0a4a577fc2c8a08f7bf490ff8386ca19f92bdd3","tlsh":"e9311fe20aba162002d3f691d75f68206216e2677d0bf8c0fd5819524f5c62c87f2cfd"},{"path":"package.json","sha256":"250de4cf58511ed5a60b02b297584a71ae11718252574c1599c95e9fd8552a0b","tlsh":"49e022158e268e7368c48e578833421bfe394f9b1469ac0c36e7b2340b2d9375e3620d"}],"package_integrity":[{"filename":"typescript-config-99.0.0.tgz","hashes":{"sha1":"e8e3e02115c42548b0b2b876f09b261de643b82e","sha512_sri":"sha512-AtZBWRn1BrC1xu2NlhMQcSQcaQ4Sg3fSVc/T6ZGF7qs3lo5G504OlYoMfWFjwgxuXt7pcc04BjpmPHRLr/iJlw=="}}]}}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/@across-toolkit/typescript-config/v/99.0.0"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@across-toolkit/typescript-config/v/99.0.1"},{"type":"ADVISORY","url":"https://research.codelake.dev/advisories/clr-2026-3036-across-toolkit-typescript-config"}],"credits":[{"name":"Amazon Inspector","type":"FINDER","contact":["inspector-research@amazon.com"]},{"name":"codelake Research","type":"FINDER","contact":["https://research.codelake.dev/advisories/clr-2026-3036-across-toolkit-typescript-config"]}],"database_specific":{"iocs":{"hashes":["sha256:396023e88ed887f45495ab2fc1d6f2ce91186e4f888136d0f7000639ca758511"],"urls":["https://webhook.site/a585f4ec-20f7-4bd1-bac7-f3e53799dc5f"]},"malicious-packages-origins":[{"source":"amazon-inspector","sha256":"5580d26d1829c9faf6465962431399aee9804c8ed1264274b30b9ce42f274bd9","import_time":"2026-07-16T18:53:59.831945562Z","id":"IN-MAL-2026-010699","modified_time":"2026-07-16T18:34:08Z","versions":["99.0.0"]},{"source":"amazon-inspector","sha256":"76463f7af786d538f929fe7f1644dc5ec072a7a9bdf4e0c4b7482fa510450c44","import_time":"2026-07-16T18:53:59.941024553Z","id":"IN-MAL-2026-010701","modified_time":"2026-07-16T18:34:25Z","versions":["99.0.1"]}]}}

数据来源:OpenSSF Malicious Packages · Apache-2.0