{"id":6970,"date":"2025-09-17T03:03:29","date_gmt":"2025-09-17T03:03:29","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2025\/09\/17\/self-replicating-worm-hits-180-software-packages\/"},"modified":"2025-09-17T03:03:29","modified_gmt":"2025-09-17T03:03:29","slug":"self-replicating-worm-hits-180-software-packages","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2025\/09\/17\/self-replicating-worm-hits-180-software-packages\/","title":{"rendered":"Self-Replicating Worm Hits 180+ Software Packages"},"content":{"rendered":"<p>    Self-Replicating Worm Hits 180+ Software Packages<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>At least 187 code packages made available through the JavaScript repository <strong>NPM<\/strong> have been infected with a self-replicating worm that steals credentials from developers and publishes those secrets on <strong>GitHub<\/strong>, experts warn.\u00a0The malware, which briefly infected multiple code packages from the security vendor <strong>CrowdStrike<\/strong>, steals and publishes even more credentials every time an infected package is installed.<\/p>\n<div id=\"attachment_72194\" style=\"width: 714px\" class=\"wp-caption aligncenter\">\n<img data-recalc-dims=\"1\" loading=\"lazy\" aria-describedby=\"caption-attachment-72194\" decoding=\"async\" class=\" wp-image-72194\" src=\"https:\/\/i0.wp.com\/krebsonsecurity.com\/wp-content\/uploads\/2025\/09\/shai-hulud.png?resize=704%2C619&#038;ssl=1\" alt=\"\" width=\"704\" height=\"619\"><\/p>\n<p id=\"caption-attachment-72194\" class=\"wp-caption-text\">Image: https:\/\/en.wikipedia.org\/wiki\/Sandworm_(Dune)<\/p>\n<\/div>\n<p>The novel malware strain is being dubbed <strong>Shai-Hulud<\/strong> \u2014 after the name for the giant sandworms in Frank Herbert\u2019s <em>Dune<\/em> novel series \u2014 because it publishes any stolen credentials in a new public GitHub repository that includes the name \u201cShai-Hulud.\u201d<\/p>\n<p>\u201cWhen a developer installs a compromised package, the malware will look for a npm token in the environment,\u201d said <strong>Charlie Eriksen<\/strong>, a researcher for the Belgian security firm <a href=\"https:\/\/www.aikido.dev\/blog\/s1ngularity-nx-attackers-strike-again\" target=\"_blank\" rel=\"noopener\">Aikido<\/a>. \u201cIf it finds it, it will modify the 20 most popular packages that the npm token has access to, copying itself into the package, and publishing a new version.\u201d<\/p>\n<p>At the center of this developing maelstrom are code libraries available on <a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener\"><strong>NPM<\/strong><\/a> (short for \u201cNode Package Manager\u201d), which acts as a central hub for JavaScript development and provides the latest updates to widely-used JavaScript components.<\/p>\n<p>The Shai-Hulud worm emerged just days after unknown attackers <a href=\"https:\/\/krebsonsecurity.com\/2025\/09\/18-popular-code-packages-hacked-rigged-to-steal-crypto\/\" target=\"_blank\" rel=\"noopener\">launched a broad phishing campaign<\/a> that spoofed NPM and asked developers to \u201cupdate\u201d their multi-factor authentication login options. That attack led to malware being inserted into at least two-dozen NPM code packages, but the outbreak was quickly contained and was narrowly focused on siphoning cryptocurrency payments.<\/p>\n<div id=\"attachment_72195\" style=\"width: 759px\" class=\"wp-caption aligncenter\">\n<img data-recalc-dims=\"1\" aria-describedby=\"caption-attachment-72195\" decoding=\"async\" loading=\"lazy\" class=\" wp-image-72195\" src=\"https:\/\/i0.wp.com\/krebsonsecurity.com\/wp-content\/uploads\/2025\/09\/shai-hulud-packages.png?resize=749%2C440&#038;ssl=1\" alt=\"\" width=\"749\" height=\"440\" srcset=\"https:\/\/krebsonsecurity.com\/wp-content\/uploads\/2025\/09\/shai-hulud-packages.png 961w, https:\/\/krebsonsecurity.com\/wp-content\/uploads\/2025\/09\/shai-hulud-packages-768x451.png 768w, https:\/\/krebsonsecurity.com\/wp-content\/uploads\/2025\/09\/shai-hulud-packages-782x459.png 782w\" sizes=\"(max-width: 749px) 100vw, 749px\"><\/p>\n<p id=\"caption-attachment-72195\" class=\"wp-caption-text\">Image: aikido.dev<\/p>\n<\/div>\n<p>In late August, another compromise of an NPM developer resulted in malware being added to \u201c<strong>nx<\/strong>,\u201d an open-source code development toolkit with as many as six million weekly downloads. In the nx compromise, the attackers introduced code that scoured the user\u2019s device for authentication tokens from programmer destinations like GitHub and NPM, as well as SSH and API keys. But instead of sending those stolen credentials to a central server controlled by the attackers, the malicious nx code created a new public repository in the victim\u2019s GitHub account, and published the stolen data there for all the world to see and download.<\/p>\n<p>Last month\u2019s attack on nx did not self-propagate like a worm, but this Shai-Hulud malware does and bundles reconnaissance tools to assist in its spread. Namely, it uses the open-source tool <a href=\"https:\/\/github.com\/trufflesecurity\/trufflehog\" target=\"_blank\" rel=\"noopener\">TruffleHog<\/a> to search for exposed credentials and access tokens on the developer\u2019s machine. It then attempts to create new GitHub actions and publish any stolen secrets.<\/p>\n<p>\u201cOnce the first person got compromised, there was no stopping it,\u201d Aikido\u2019s Eriksen told KrebsOnSecurity. He said the first NPM package compromised by this worm appears to have been altered on Sept. 14, around 17:58 UTC.<\/p>\n<p>The security-focused code development platform <strong>socket.dev<\/strong> <a href=\"https:\/\/socket.dev\/blog\/ongoing-supply-chain-attack-targets-crowdstrike-npm-packages\" target=\"_blank\" rel=\"noopener\">reports<\/a> the Shai-Halud attack briefly compromised at least 25 NPM code packages managed by CrowdStrike. Socket.dev said the affected packages were quickly removed by the NPM registry.<\/p>\n<p>In a written statement shared with KrebsOnSecurity, CrowdStrike said that after detecting several malicious packages in the public NPM registry, the company swiftly removed them and rotated its keys in public registries.<\/p>\n<p>\u201cThese packages are not used in the Falcon sensor, the platform is not impacted and customers remain protected,\u201d the statement reads, referring to the company\u2019s widely-used endpoint threat detection service. \u201cWe are working with NPM and conducting a thorough investigation.\u201d<span id=\"more-72190\"><\/span><\/p>\n<p>A <a href=\"https:\/\/www.stepsecurity.io\/blog\/ctrl-tinycolor-and-40-npm-packages-compromised\" target=\"_blank\" rel=\"noopener\">writeup on the attack<\/a> from <strong>StepSecurity<\/strong> found that for cloud-specific operations, the malware enumerates AWS, Azure and Google Cloud Platform secrets. It also found the entire attack design assumes the victim is working in a Linux or macOS environment, and that it deliberately skips Windows systems.<\/p>\n<p>StepSecurity said Shai-Hulud spreads by using stolen NPM authentication tokens, adding its code to the top 20 packages in the victim\u2019s account.<\/p>\n<p>\u201cThis creates a cascading effect where an infected package leads to compromised maintainer credentials, which in turn infects all other packages maintained by that user,\u201d StepSecurity\u2019s <strong>Ashish Kurmi<\/strong> wrote.<\/p>\n<p>Eriksen said Shai-Hulud is still propagating, although its spread seems to have waned in recent hours.<\/p>\n<p>\u201cI still see package versions popping up once in a while, but no new packages have been compromised in the last ~6 hours,\u201d Eriksen said. \u201cBut that could change now as the east coast starts working. I would think of this attack as a \u2018living\u2019 thing almost, like a virus. Because it can lay dormant for a while, and if just one person is suddenly infected by accident, they could restart the spread. Especially if there\u2019s a super-spreader attack.\u201d<\/p>\n<p>For now, it appears that the web address the attackers were using to exfiltrate collected data was disabled due to rate limits, Eriksen said.<\/p>\n<p><strong>Nicholas Weaver<\/strong> is a researcher with the <strong>International Computer Science Institute<\/strong>, a nonprofit in Berkeley, Calif. Weaver called the Shai-Hulud worm \u201ca supply chain attack that conducts a supply chain attack.\u201d Weaver said NPM (and all other similar package repositories) need to immediately switch to a publication model that requires explicit human consent for every publication request using a phish-proof 2FA method.<\/p>\n<p>\u201cAnything less means attacks like this are going to continue and become far more common, but switching to a 2FA method would effectively throttle these attacks before they can spread,\u201d Weaver said. \u201cAllowing purely automated processes to update the published packages is now a proven recipe for disaster.\u201d<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    BrianKrebs<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/krebsonsecurity.com\/2025\/09\/self-replicating-worm-hits-180-software-packages\/\">Go to krebsonsecurity<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Self-Replicating Worm Hits 180+ Software Packages At least 187 code packages made available through the JavaScript repository NPM have been infected with a self-replicating worm that steals credentials from developers and publishes those secrets on GitHub, experts warn.\u00a0The malware, which briefly infected multiple code packages from the security vendor CrowdStrike, steals and publishes even more [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1807,1842,1808,899,1455,55,206,1459,1811,1843,1844,207,178,370],"tags":[72],"class_list":["post-6970","post","type-post","status-publish","format-standard","hentry","category-aikido","category-ashish-kurmi","category-charlie-eriksen","category-github","category-international-computer-science-institute","category-krebsonsecurity","category-latest-warnings","category-nicholas-weaver","category-npm","category-shai-hulud-worm","category-stepsecurity","category-the-coming-storm","category-time-to-patch","category-web-fraud-2-0","tag-krebsonsecurity"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/6970"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=6970"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/6970\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=6970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=6970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=6970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}