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

目标: 1000 元 · 已筹: 1359 元

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

twilio-assets

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

Summary

Malicious code in twilio-assets (npm)

安装阶段执行文件/数据外传
AI 分析整理qwen3.6
基于上游报告生成,请以下方原始证据为准。
公开使用量数据
统计周期
last-week
下载量
0
数据源
npmjs.org
下载量只代表仓库活动度,不等于已被入侵的安装数量。
受影响版本
EcosystemPackageVersion
npmtwilio-assets*
npmtwilio-assets99.99.100
npmtwilio-assets99.99.99
恶意行为说明OpenSSF OSV
上游来源证据
展开原始 OSV JSON
{"schema_version":"1.7.4","id":"MAL-2026-10932","published":"2026-07-20T00:00:00Z","modified":"2026-08-05T07:08:56.348323674Z","summary":"Malicious code in twilio-assets (npm)","details":"The twilio-assets package is one of four byte-identical dependency-confusion squats of Twilio's npm namespace published by user 'yuva2210' (maintainer email charankumarj2004@gmail.com), all at the sentinel version 99.99.99 chosen to outrank any internal/private version and win resolution against a private registry. The npm description is empty and the package provides no legitimate functionality; the name mimics a plausible internal Twilio package so that a misconfigured resolver installs this public lookalike instead of the intended private dependency.\n\nThe package declares a postinstall hook (\"node index.js\") that executes automatically on a bare npm install with no consent gate. The bundled index.js payload (1,185 bytes, sha256 prefix c324d579006df4c5, identical across all four packages) performs environment reconnaissance: it collects the npm package name and version, os.hostname(), the OS username (os.userInfo().username), the home directory path (os.homedir()), the current working directory, os.platform(), os.arch(), NODE_ENV, and the CI flag. It serializes this to JSON and exfiltrates it via HTTPS POST to a hardcoded anonymous dead-drop at https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f (the same collector UUID across all four packages). On request error the payload falls back to a redundant out-of-band callback to 2b22ede784d5.oast.fun over HTTP, ensuring the beacon lands even where HTTPS egress to webhook.site is blocked; errors on that path are swallowed.\n\nThe collected cwd/homedir/username/CI/NODE_ENV set is reconnaissance targeting internal build environments and their filesystem layout. All four packages (twilio-serverless, twilio-assets, twilio-deploy, twilio-internal) were published by the same maintainer with an identical payload and the same collector endpoint.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (91863ca63f6fc43ebc209bc8255c9f668f1e6cae5d53d2f86c847d0453bd9a0e)\ntwilio-assets@99.99.99 is a bare-name package in the Twilio namespace whose postinstall script (node index.js, wired via package.json) runs automatically on npm install. index.js collects hostname, username, home directory, cwd, platform, arch, and selected environment variables and POSTs the JSON body to a hardcoded webhook.site capture endpoint at https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f. On error it falls back to a GET against 2b22ede784d5.oast.fun, an interactsh out-of-band DNS/HTTP callback host, providing a secondary reconnaissance channel. The package ships no other functionality. The 99.99.99 version and the twilio-adjacent bare name are the canonical dependency-confusion shape used to force resolution over an internal package of the same name in installer build systems.\n","affected":[{"package":{"name":"twilio-assets","ecosystem":"npm"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"versions":["99.99.99","99.99.100"],"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":"index.js","sha256":"1e53f49081bcfa36cb83abaa9fcfdec5b1ef99d515f40a766b0de9e1e5d03f09","tlsh":"5f1148f553f5ad700bb59384b18aac1553b3f01473079cf099d851652bd827425f26f9"},{"path":"package.json","sha256":"550fa7a512d88ebba2ffe07e78145666107c6879f62125a4d51633d3234e0f0d","tlsh":"98c08c301c219b2334c80ad6087aa48922e24e2f5204a40807836050a19867348ff30e"}],"package_integrity":[{"filename":"twilio-assets-99.99.99.tgz","hashes":{"sha1":"101eb4baee9226871d716b97c116036a6df774f7","sha512_sri":"sha512-bVKMlD02+Q8jeyNpSYcQnhTt0IFFYxSMeuJQmKPxsNy3SJxb04m7AyvsJ6vlEt70++t45fol5S45VinSVwK2Ww=="}}]},"iocs":{"domains":["webhook.site","2b22ede784d5.oast.fun"],"urls":["https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f"]}}}],"references":[{"type":"WEB","url":"https://www.npmjs.com/package/twilio-assets"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/twilio-assets/v/99.99.99"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/twilio-assets/v/99.99.100"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-011103","import_time":"2026-08-04T21:33:16.822913017Z","modified_time":"2026-08-04T21:32:53Z","sha256":"91863ca63f6fc43ebc209bc8255c9f668f1e6cae5d53d2f86c847d0453bd9a0e","source":"amazon-inspector","versions":["99.99.99"]},{"id":"IN-MAL-2026-013300","import_time":"2026-08-05T07:06:40.292003Z","modified_time":"2026-08-05T06:03:24Z","sha256":"b0b12983a92673d76caa4b515f34fae5b935a9ed93ea9743c948aacb2d60b20b","source":"amazon-inspector","versions":["99.99.100"]}]},"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