🛡️ MAL-2026-10936 — twilio-platform-request
Description
Malicious code in twilio-platform-request (npm)
The twilio-platform-request package is a dependency-confusion squat of Twilio's npm namespace published by user 'yuva2210' (maintainer email [email protected]) at sentinel versions 99.99.99 and 99.99.100, 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. It belongs to the same campaign as the actor's twilio-serverless/twilio-assets/twilio-deploy/twilio-internal squats and beacons to the same webhook.site collector.
The package declares a postinstall hook ("node index.js") that executes automatically on a bare npm install with no consent gate. The index.js payload performs environment reconnaissance: it collects the npm package name (npm_package_name), os.hostname(), the OS username (os.userInfo().username), and the current working directory, serializes them to JSON, and exfiltrates the bundle via HTTPS POST to a hardcoded anonymous dead-drop at https://webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f. Request errors are swallowed so the install appears to succeed.
Two iterations were published: version 99.99.99 (payload 494 bytes, sha256 prefix 0ec56ada88db35b6) beacons only to the webhook.site collector, while version 99.99.100 (payload 688 bytes, sha256 prefix cebf45a0feba28b3) additionally beacons to a redundant out-of-band callback at 8060h91v8p1bvvr24e3r8s3z4qahy7mw.oastify.com, ensuring the reconnaissance lands even where HTTPS egress to webhook.site is blocked. Both payloads are byte-identical across all four packages in this sub-cluster (twiliointernal-messaging-toolbox, org-twilio-phone-numbers-utils, twilio-platform-request, twilio-platform-async-data-fetch).
Source: amazon-inspector
On npm install, the package's postinstall lifecycle hook executes index.js, which collects the installer's hostname (os.hostname()), OS username (os.userInfo().username), current working directory (process.cwd()), and package name/version, then POSTs the collected data over HTTPS to two hardcoded out-of-band endpoints: webhook.site/42ce0f0e-a0a0-41b5-b157-1c0f918e064f and 8060h91v8p1bvvr24e3r8s3z4qahy7mw.oastify.com (a Burp Collaborator-style subdomain). The package name resembles a Twilio-adjacent internal package and is published at version 99.99.100, a shape consistent with dependency-confusion reconnaissance. No first-party functionality is present; the sole install-time effect is the exfiltration beacon.
Affected software
MAL-2026-10936 is recorded against 1 package.
- twilio-platform-request
Timeline and source
Published on 20 July 2026 and last revised on 4 August 2026. No public exploit is currently recorded for this entry. Record sourced from OSV.
References
www.npmjs.com (Web)
www.npmjs.com (Package)
www.npmjs.com (Package)
Details
Affected Packages
| Software | From version | Fixed in |
|---|---|---|
| twilio-platform-request | — | — |
References
More MAL 2026 advisories
Browse all of MAL 2026 in the advisory index.
Free Vulnerability Check
Is your site affected by MAL-2026-10936?
BotEraser helps you identify potentially vulnerable plugins and themes by checking your installation against MAL-2026-10936 and other known CVE records.
Scan My Site Free →No credit card required · Results in minutes
ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.