{"id":202356,"date":"2026-04-05T01:07:00","date_gmt":"2026-04-05T05:07:00","guid":{"rendered":"https:\/\/testing.news-you-need.com\/index.php\/2026\/04\/05\/36-malicious-npm-packages-exploited-redis-postgresql-to-deploy-persistent-implants\/"},"modified":"2026-04-05T05:30:13","modified_gmt":"2026-04-05T09:30:13","slug":"36-malicious-npm-packages-exploited-redis-postgresql-to-deploy-persistent-implants","status":"publish","type":"post","link":"https:\/\/testing.news-you-need.com\/index.php\/2026\/04\/05\/36-malicious-npm-packages-exploited-redis-postgresql-to-deploy-persistent-implants\/","title":{"rendered":"36 Malicious npm Packages Exploited Redis, PostgreSQL to Deploy Persistent Implants"},"content":{"rendered":"<p><a href=\"https:\/\/thehackernews.com\/2026\/04\/36-malicious-npm-packages-exploited.html\">36 Malicious npm Packages Exploited Redis, PostgreSQL to Deploy Persistent Implants<\/a><\/p>\n<p><a href=\"https:\/\/thehackernews.com\/2026\/04\/36-malicious-npm-packages-exploited.html\">https:\/\/thehackernews.com\/2026\/04\/36-malicious-npm-packages-exploited.html<\/a><\/p>\n<p>Publish Date: <a href=\"publish_date]\">2026-04-05 01:07:00<\/a><\/p>\n<p>Source Domain: <a href=\"thehackernews.com\">thehackernews.com<\/a><\/p>\n<p>Author: <a href=\"\"><\/a><\/p>\n<p> Using an unordered list, summarize the following article with between 4 and 8 key points.<br \/>\n\ue804Ravie Lakshmanan\ue802Apr 05, 2026Malware \/ DevSecOps<br \/>\nCybersecurity researchers have discovered 36 malicious packages in the npm registry that are disguised as Strapi CMS plugins but come with different payloads to facilitate Redis and PostgreSQL exploitation, deploy reverse shells, harvest credentials, and drop a persistent\u00a0implant.<br \/>\n&#8220;Every package contains three files (package.json, index.js, postinstall.js), has no description, repository, or homepage, and uses version 3.6.8\u00a0to appear as a mature Strapi v3 community plugin,&#8221;\u00a0SafeDep said.<br \/>\nAll\u00a0identified npm packages follow the same naming convention, starting with &#8220;strapi-plugin-&#8221; and then phrases like &#8220;cron,&#8221; &#8220;database,&#8221; or &#8220;server&#8221; to fool unsuspecting developers into downloading them. It&#8217;s worth noting that the official Strapi plugins are scoped under &#8220;@strapi\/.&#8221;<br \/>\nThe\u00a0packages, uploaded by four sock puppet accounts &#8220;umarbek1233,&#8221; &#8220;kekylf12,&#8221; &#8220;tikeqemif26,&#8221; and &#8220;umar_bektembiev1&#8221; over a period of 13 hours, are listed below\u00a0&#8211;<\/p>\n<p>strapi-plugin-cron<br \/>\nstrapi-plugin-config<br \/>\nstrapi-plugin-server<br \/>\nstrapi-plugin-database<br \/>\nstrapi-plugin-core<br \/>\nstrapi-plugin-hooks<br \/>\nstrapi-plugin-monitor<br \/>\nstrapi-plugin-events<br \/>\nstrapi-plugin-logger<br \/>\nstrapi-plugin-health<br \/>\nstrapi-plugin-sync<br \/>\nstrapi-plugin-seed<br \/>\nstrapi-plugin-locale<br \/>\nstrapi-plugin-form<br \/>\nstrapi-plugin-notify<br \/>\nstrapi-plugin-api<br \/>\nstrapi-plugin-sitemap-gen<br \/>\nstrapi-plugin-nordica-tools<br \/>\nstrapi-plugin-nordica-sync<br \/>\nstrapi-plugin-nordica-cms<br \/>\nstrapi-plugin-nordica-api<br \/>\nstrapi-plugin-nordica-recon<br \/>\nstrapi-plugin-nordica-stage<br \/>\nstrapi-plugin-nordica-vhost<br \/>\nstrapi-plugin-nordica-deep<br \/>\nstrapi-plugin-nordica-lite<br \/>\nstrapi-plugin-nordica<br \/>\nstrapi-plugin-finseven<br \/>\nstrapi-plugin-hextest<br \/>\nstrapi-plugin-cms-tools<br \/>\nstrapi-plugin-content-sync<br \/>\nstrapi-plugin-debug-tools<br \/>\nstrapi-plugin-health-check<br \/>\nstrapi-plugin-guardarian-ext<br \/>\nstrapi-plugin-advanced-uuid<br \/>\nstrapi-plugin-blurhash\u00a0<\/p>\n<p>An\u00a0analysis of the packages reveals that the malicious code is embedded within the postinstall script hook, which gets executed on &#8220;npm install&#8221; without requiring any user interaction. It\u00a0runs with the same privileges as those of the installing user, meaning it abuses root access within CI\/CD environments and Docker containers.<\/p>\n<p>The\u00a0evolution of the payloads distributed as part of the campaign is as follows\u00a0&#8211;<\/p>\n<p>Weaponize a locally accessible Redis instance for remote code execution by injecting a crontab (aka cron table) entry to download and execute a shell script from a remote server every minute. The\u00a0shell script writes a PHP web shell and Node.js\u00a0reverse shell via SSH to Strapi&#8217;s public uploads directory. It\u00a0also attempts to scan the disk for secrets (e.g., Elasticsearch and cryptocurrency wallet seed phrases) and exfiltrate a Guardarian API module.<br \/>\nCombine Redis exploitation with Docker container escape to write shell payloads to the host outside the container. It\u00a0also launches a direct Python reverse shell on port 4444 and writes a reverse shell trigger into the application\u2019s node_modules directory via Redis.<br \/>\nDeploy a reverse shell and write a shell downloader via Redis and execute the resulting file.<br \/>\nScan the system for environment variables and PostgreSQL database connection strings.<br \/>\nAn expanded credential harvester and reconnaissance payload to gather environment dumps, Strapi configurations, Redis database extraction by running the INFO, DBSIZE, and KEYS commands, network topology mapping, and Docker\/Kubernetes secrets, cryptographic keys, and cryptocurrency wallet files.<br \/>\nConduct PostgreSQL database exploitation by connecting to the target&#8217;s PostgreSQL database using hard-coded credentials and querying Strapi-specific tables for secrets. It\u00a0also dumps matching cryptocurrency-related patterns (e.g., wallet, transaction, deposit, withdraw, hot, cold, and balance) and attempts to connect to six Guardarian databases. This\u00a0indicates that the threat actor is already in possession of the data, obtained either via a prior compromise or through some other means.<br \/>\nDeploy a persistent implant designed to maintain remote access to a specific hostname (&#8220;prod-strapi&#8221;).<br \/>\nFacilitate credential theft by scanning hard-coded paths and spawning a persistent reverse shell.<\/p>\n<p>&#8220;The eight payloads show a clear narrative: the attacker started aggressively (Redis RCE, Docker escape), found those approaches weren&#8217;t working, pivoted to reconnaissance and data collection, used hardcoded credentials for direct database access, and finally settled on persistent access with targeted credential theft,&#8221; SafeDep\u00a0said.<br \/>\nThe\u00a0nature of the payloads, combined with the focus on digital assets and the use of hard-coded database credentials and hostname, raises the possibility that the campaign was a targeted attack against a cryptocurrency platform. Users\u00a0who have installed any of the aforementioned packages are advised to assume compromise and rotate all credentials.<br \/>\nThe\u00a0discovery coincides with the discovery of several supply chain attacks targeting the open-source ecosystem\u00a0&#8211;<\/p>\n<p>A GitHub account named &#8220;ezmtebo&#8221; has submitted over 256 pull requests across various open-source repositories containing a credential exfiltration payload. &#8220;It steals secrets through CI logs and PR comments, injects temporary workflows to dump secret values, auto-applies labels to bypass pull_request_target gates, and runs a background \/proc scanner for 10 minutes after the main script exits,&#8221; SafeDep said.<br \/>\nA hijack of &#8220;dev-protocol,&#8221; a verified GitHub organization, to distribute malicious Polymarket trading bots with typosquatted npm dependencies (&#8220;ts-bign&#8221; and &#8220;levex-refa&#8221; or &#8220;big-nunber&#8221; and &#8220;lint-builder&#8221;) that steal wallet private keys, exfiltrate sensitive files, and open an SSH backdoor on the victim&#8217;s machine. While\u00a0&#8220;levex-refa&#8221; functions as a credential stealer, &#8220;lint-builder&#8221; installs the SSH backdoor. Both\u00a0&#8220;ts-bign&#8221; and &#8220;big-nunber&#8221; are designed to deliver &#8220;levex-refa&#8221; and &#8220;lint-builder,&#8221; respectively, as a transitive dependency.<br \/>\nA compromise of the popular Emacs package, &#8220;kubernetes-el\/kubernetes-el,&#8221; that exploited the Pwn Request vulnerability in its GitHub Actions workflow by using the pull_request_target trigger to steal the repository&#8217;s GITHUB_TOKEN, exfiltrate CI\/CD secrets, deface the repository, and inject destructive code to delete nearly all repository files.<br \/>\nA compromise of the legitimate &#8220;xygeni\/xygeni-action&#8221; GitHub Actions workflow using stolen maintainer credentials to plant a reverse shell backdoor. Xygeni\u00a0has since implemented new security controls to address the incident.<br \/>\nA compromise of the legitimate npm package, &#8220;mgc,&#8221; by means of an account takeover to push four malicious versions (1.2.1\u00a0through 1.2.4) containing a dropper script that detects the operating system and fetches a platform-specific payload \u2013 a Python trojan for Linux and a PowerShell variant for Windows called WAVESHAPER.V2\u00a0\u2013 from a GitHub Gist. The\u00a0attack shares direct overlap with the recent supply chain attack targeting Axios, which has been attributed to a North Korean threat cluster tracked as UNC1069.<br \/>\nA malicious npm package named &#8220;express-session-js&#8221; that typosquats &#8220;express-session&#8221; and contains a dropper that retrieves a next-stage remote access trojan (RAT) from JSON Keeper to conduct data theft and persistent access by connecting to &#8220;216.126.237[.]71&#8221; using the Socket.IO\u00a0library.<br \/>\nA compromise of the legitimate PyPI package, &#8220;bittensor-wallet&#8221; (version 4.0.2), to deploy a backdoor that&#8217;s triggered during a wallet decryption operation to exfiltrate wallet keys using HTTPS, DNS tunneling, and Raw TLS as exfiltration channels to either a hard-coded domain or one created using a Domain Generation Algorithm (DGA) that&#8217;s rotated daily.<br \/>\nA malicious PyPI package named &#8220;pyronut&#8221; that typosquats &#8220;pyrogram,&#8221; a popular Python Telegram API framework, to embed a stealthy backdoor that&#8217;s triggered every time a Telegram client starts and seize control of the Telegram session and the underlying host system. &#8220;The backdoor registers hidden Telegram message handlers that allow two hardcoded attacker-controlled accounts to execute arbitrary Python code (via the \/e command and the meval library) and arbitrary shell commands (via the \/shell command and subprocess) on the victim&#8217;s machine,&#8221; Endor Labs said.<br \/>\nA set of three malicious Microsoft Visual Studio Code (VS Code) extensions published by &#8220;IoliteLabs&#8221; \u2013 &#8220;solidity-macos,&#8221; &#8220;solidity-windows,&#8221; and &#8220;solidity-linux&#8221; \u2013 that were originally dormant since 2018 but were updated on March 25, 2026, to launch a multi-stage backdoor targeting Windows and macOS systems upon launching the application to establish persistence. Collectively, the extensions had 27,500 installs prior to them being removed.<br \/>\nMultiple versions of the &#8220;KhangNghiem\/fast-draft&#8221; VS Code extension on Open VSX (0.10.89, 0.10.105, 0.10.106, and 0.10.112) that execute a GitHub-hosted downloader to deploy a second-stage Socket.IO\u00a0RAT, an information stealer, a file exfiltration module, and a clipboard monitor from a GitHub repository. Interestingly, versions 0.10.88, 0.10.111, and 0.10.129-135 have been found to be clean. &#8220;That is not the release pattern you expect from a single compromised build or a maintainer who has fully switched to malicious behavior,&#8221; Aikido said. &#8220;It looks more like two competing release streams sharing the same publisher identity.&#8221;<\/p>\n<p>In\u00a0a report published in February 2026, Group-IB revealed that software supply chain attacks have become &#8220;the dominant force reshaping the global cyber threat landscape,&#8221; adding that threat actors are going after trusted vendors, open-source software, SaaS platforms, browser extensions, and managed service providers to gain inherited access to hundreds of downstream organizations.<br \/>\nThe\u00a0supply chain threat can rapidly escalate a single localized intrusion into\u00a0something that\u00a0has a large-scale, cross-border\u00a0impact, with\u00a0attackers industrializing supply chain compromises\u00a0and turning\u00a0it into a &#8220;self-reinforcing&#8221; ecosystem, as it\u00a0offers reach, speed, and\u00a0stealth.<br \/>\n&#8220;Package repositories such as npm and PyPI have become prime targets, stolen maintainer credentials, and automated malware worms to compromise widely used libraries \u2013 turning development pipelines into large-scale distribution channels for malicious code,&#8221;\u00a0Group-IB said<\/p>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>36 Malicious npm Packages Exploited Redis, PostgreSQL to Deploy Persistent Implants https:\/\/thehackernews.com\/2026\/04\/36-malicious-npm-packages-exploited.html Publish Date: 2026-04-05&#8230;<\/p>\n","protected":false},"author":1,"featured_media":202357,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg9axxKrcvcFkL99SIB2AlrcEW2RIZ1Ff8PollH7XYSWrYSOgoPXKlF5rsdgyr9BSWVUa5oP07faI_DvxNyUk_rpuz5i2xuiEdlU-e929rCWpkLjDGRs4EBjzfBWQRJVtrWNtR-EKvWsR-PPO-Yfei5ONMyumlI12R7OHmIrsyzJtB5SJRTCSuKiyJQnTfK\/s1600\/database.jpg","fifu_image_alt":"","footnotes":""},"categories":[15],"tags":[24,32,34,27],"class_list":["post-202356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybersecurity","tag-cybersecurity","tag-malware","tag-threat-actor","tag-vulnerability"],"_links":{"self":[{"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts\/202356"}],"collection":[{"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/comments?post=202356"}],"version-history":[{"count":1,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts\/202356\/revisions"}],"predecessor-version":[{"id":202358,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts\/202356\/revisions\/202358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/media\/202357"}],"wp:attachment":[{"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/media?parent=202356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/categories?post=202356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/testing.news-you-need.com\/index.php\/wp-json\/wp\/v2\/tags?post=202356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}