The twilio-deploy 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.
The 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.
The 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.
-= Per source details. Do not edit below this line.=-
Package name typosquats 'twilio' and is published at version 99.99.99, the classic dependency-confusion shape used to intercept internal-package resolution. On npm install, the declared postinstall hook runs index.js, which collects host and user identifiers (os.hostname(), os.userInfo().username, os.homedir(), cwd, os.platform(), os.arch(), npm_package_name, npm_package_version, NODE_ENV, and CI environment variables) and POSTs them as JSON to a hardcoded https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f collector, with a fallback GET to 2b22ede784d5.oast.fun as an out-of-band callback. The destination is not configured by the installer and is unrelated to the Twilio publisher; the effect is automatic reconnaissance beacon on any machine that installs the package.
{
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-011101",
"import_time": "2026-08-04T21:33:16.772828297Z",
"modified_time": "2026-08-04T21:32:33Z",
"sha256": "64b1e3e96271384ceafb277978fe65ca3e89fd42bc59fbc82e5c17be66e0ba31",
"source": "amazon-inspector",
"versions": [
"99.99.99"
]
},
{
"id": "IN-MAL-2026-013301",
"import_time": "2026-08-05T07:06:40.350948833Z",
"modified_time": "2026-08-05T06:03:31Z",
"sha256": "70c4d709ca9d653cb4c5cb2b35aca854d264cf7fda431259c255c2f738adf8c5",
"source": "amazon-inspector",
"versions": [
"99.99.100"
]
}
]
}[
{
"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"
}
]
{
"evidence_files": [
{
"path": "index.js",
"sha256": "1e53f49081bcfa36cb83abaa9fcfdec5b1ef99d515f40a766b0de9e1e5d03f09",
"tlsh": "5f1148f553f5ad700bb59384b18aac1553b3f01473079cf099d851652bd827425f26f9"
}
],
"package_integrity": [
{
"filename": "twilio-deploy-99.99.99.tgz",
"hashes": {
"sha1": "139f94f0e5e6bf0ea453c029844530d5ef4061d5",
"sha512_sri": "sha512-UjzTBavnFgISti/+Dq/WBD0J0OIzMO1wJ9lWQcj8OijDCMB5h2MF1ee6yIDSJcq4TcE5Bc26SpUuoJ3EjDHoWw=="
}
}
]
}
{
"domains": [
"webhook.site",
"2b22ede784d5.oast.fun"
],
"urls": [
"https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f"
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/twilio-deploy/MAL-2026-10933.json"