MAL-2026-10937

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/twilio-serverless/MAL-2026-10937.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10937
Published
2026-07-20T00:00:00Z
Modified
2026-08-05T07:21:37Z
Summary
Malicious code in twilio-serverless (npm)
Details

The twilio-serverless 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.=-

Source: amazon-inspector (04898e32caf2b456c8f454a78dc4556e1caf1c239c9170b602f9f5bad6f02003)

The package's postinstall hook executes index.js, which collects installer host identifiers (os.hostname(), os.userInfo().username, os.homedir(), process.cwd(), os.platform(), os.arch(), NODE_ENV, CI, package name/version) and POSTs them as JSON to a hardcoded webhook.site endpoint (webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f), with a fallback GET to an interactsh subdomain (2b22ede784d5.oast.fun) for out-of-band DNS callback. The package name resembles Twilio's official serverless tooling and is published at version 99.99.99 with an empty description and no library functionality beyond the beacon — the shape of a typosquat / dependency-confusion probe that fingerprints internal build systems resolving to the public registry.

Database specific
{
    "malicious-packages-origins": [
        {
            "id": "IN-MAL-2026-011099",
            "import_time": "2026-08-04T21:33:16.713904614Z",
            "modified_time": "2026-08-04T21:32:18Z",
            "sha256": "04898e32caf2b456c8f454a78dc4556e1caf1c239c9170b602f9f5bad6f02003",
            "source": "amazon-inspector",
            "versions": [
                "99.99.99"
            ]
        },
        {
            "id": "IN-MAL-2026-013299",
            "import_time": "2026-08-05T07:06:40.26140166Z",
            "modified_time": "2026-08-05T06:03:16Z",
            "sha256": "d1664d6d9cb64b8f1047e0bf3ba58cd10f1fb3ea3f9dd1b701908687719a2902",
            "source": "amazon-inspector",
            "versions": [
                "99.99.100"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / twilio-serverless

Package

Name
twilio-serverless
View open source insights on deps.dev
Purl
pkg:npm/twilio-serverless

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected

Affected versions

99.*
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": "fd73fea754c141594b000d0c56ff2d30505612ed74ddd25b5e617ff025af34be",
            "tlsh": "44c08c30ac21eb2334cd2b96087aa58932e20d2f0104640447c3201192986b348ff30e"
        }
    ],
    "package_integrity": [
        {
            "filename": "twilio-serverless-99.99.99.tgz",
            "hashes": {
                "sha1": "d58d5f686414955f809bf753318a1072efa362b6",
                "sha512_sri": "sha512-0bhqE+xnZfqI9CNYkTLmIB9fiGz1KnsNaZnqQ3O8tfwSu1kIGxeyX+UP/k8oysajxkcaEhE4y1Su/UyZcyHZeg=="
            }
        }
    ]
}
iocs
{
    "domains": [
        "webhook.site",
        "2b22ede784d5.oast.fun"
    ],
    "urls": [
        "https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f"
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/twilio-serverless/MAL-2026-10937.json"