{"answers":{"affected":"1 open source package ship an affected version, including twilio-assets.","exploited":"There is no known exploitation of MAL-2026-10932 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-10932 is a malicious package in twilio-assets, published on 20 Jul 2026."},"fix_prompt":"MAL-2026-10932 is a malicious package: twilio-assets (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-10932/ (Markdown: https://insights.sbomify.com/MAL-2026-10932/index.md)","id":"MAL-2026-10932","markdown":"https://insights.sbomify.com/MAL-2026-10932/index.md","name":"MAL-2026-10932","record":{"aliases":[],"analysis":null,"analysis_generated_by":null,"assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"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\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.","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 twilio-assets (npm)","id":"MAL-2026-10932","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":["0"],"last_affected":[],"package":"twilio-assets","purl":"pkg:npm/twilio-assets","source":"MAL-2026-10932"}],"products":null,"published":"2026-07-20","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-10932/"}