{"id":11394,"date":"2026-03-17T10:03:47","date_gmt":"2026-03-17T10:03:47","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/03\/17\/malicious-npm-packages-deliver-pylangghost-rat-in-new-software-supply-chain-campaign\/"},"modified":"2026-03-17T10:03:47","modified_gmt":"2026-03-17T10:03:47","slug":"malicious-npm-packages-deliver-pylangghost-rat-in-new-software-supply-chain-campaign","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/03\/17\/malicious-npm-packages-deliver-pylangghost-rat-in-new-software-supply-chain-campaign\/","title":{"rendered":"Malicious npm Packages Deliver PylangGhost RAT in New Software Supply Chain Campaign"},"content":{"rendered":"<p>    Malicious npm Packages Deliver PylangGhost RAT in New Software Supply Chain Campaign<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>A remote access trojan known as PylangGhost has appeared on the npm registry for the first time, concealed inside two malicious JavaScript packages. <\/p>\n<p>The malware, first publicly disclosed by Cisco Talos in June 2025 and attributed to the North Korean state-sponsored threat group <a href=\"https:\/\/cybersecuritynews.com\/famous-chollima-hackers-attacking-windows-and-macos-users\/\" id=\"111556\" target=\"_blank\" rel=\"noreferrer noopener\">FAMOUS CHOLLIMA<\/a>, marks a significant escalation in software supply chain attacks targeting developers around the world.\u200b<\/p>\n<p>PylangGhost has been tracked for months as part of coordinated campaigns tied to North Korean cyber operations. <\/p>\n<p>FAMOUS CHOLLIMA is well known in the security community for targeting software developers through trojanized code repositories, fabricated job opportunities, and <a href=\"https:\/\/cybersecuritynews.com\/social-engineering-tactics\/\" id=\"105131\" target=\"_blank\" rel=\"noreferrer noopener\">social engineering<\/a> tactics designed to gain unauthorized system access. <\/p>\n<p>The group\u2019s deliberate move onto npm \u2014 one of the most widely used open-source package registries in the world \u2014 signals a calculated effort to compromise development pipelines at a much larger scale than previously observed.\u200b<\/p>\n<p><a href=\"https:\/\/kmsec.uk\/blog\/pylangghost-npm\/\" id=\"https:\/\/kmsec.uk\/blog\/pylangghost-npm\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Kmsec.uk researchers identified two malicious packages<\/a> published by user jaime9008, linked to the email jaimeandujo086[@]gmail.com. <\/p>\n<p>The first package, @jaime9008\/math-service, was uploaded in late February 2026, and the second, react-refresh-update, surfaced in early March 2026. <\/p>\n<p>Both packages cycled rapidly through multiple version updates, with the PylangGhost loader embedded inside key JavaScript files including runtime.js, babel.js, and lib\/lib.js.\u200b<\/p>\n<p>The campaign identifier hardcoded into the malware is \u201cML2J,\u201d and the attacker\u2019s command-and-control (C2) infrastructure relies on the domain malicanbur[.]pro, with a C2 IP address of 173.211.46[.]22:8080. <\/p>\n<p>This marks the first confirmed instance of PylangGhost appearing on npm and reflects the speed at which FAMOUS CHOLLIMA continues to develop and deploy new tools. <\/p>\n<p>Any developer who installed either of these packages during the active window may have had their system silently compromised without any visible indication.\u200b<\/p>\n<p>The broader danger of this campaign extends well beyond individual developers. Since npm packages are routinely pulled into large-scale projects, automated build systems, and CI\/CD pipelines, a single infected dependency can quietly expose entire organizations. <\/p>\n<p>The deceptive use of a convincing package name like react-refresh-update makes the threat much harder to catch through routine dependency reviews, giving the malware additional time to execute without raising suspicion.\u200b<\/p>\n<h2 class=\"wp-block-heading\" id=\"how-the-infection-unfolds\"><strong>How the Infection Unfolds<\/strong><\/h2>\n<p>The infection chain behind this campaign is carefully structured to execute silently across Windows, macOS, and Linux systems without triggering any immediate security alerts.\u200b<\/p>\n<p>Once a developer installs an affected package, a <a href=\"https:\/\/cybersecuritynews.com\/javascript-loader-to-deliver-malware\/\" id=\"8093\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript loader<\/a> embedded in specific files runs automatically. <\/p>\n<p>This loader follows a decode-decrypt-evaluate sequence and uses a hardcoded XOR key \u2014 the string \u201cfdfdfdfdf3rykyjjgfkwi\u201d \u2014 to unlock the hidden payload before it executes in memory.\u200b<\/p>\n<p>After decryption, the loader checks the victim\u2019s operating system and adjusts its behavior accordingly. <\/p>\n<p>On Windows machines, it downloads a ZIP archive from malicanbur[.]pro in 10 MB increments \u2014 a method deliberately chosen to bypass network monitoring tools that flag large single-file transfers. <\/p>\n<p>Once the download completes, the archive is extracted to the system\u2019s temp directory and a VBScript file named start.vbs is silently launched through wscript, keeping the entire process invisible to the user. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg2uPLSb8KvLOkhj1MDamPa_XvC4jrR_sshDJqfMmgTtEQ6wtECkrsxF19_btxScTq3fiQ1U1X4Ss487YPXblsVZ3mB99SxbgF4bq7j22RghPLUZXvPIlU43ph3qa8BfmJlFj-H_JAH7lxe-bjCa9Jt0oSe4UjSUkcZHjszdB7Tgeqi5VkTlYA1Ch-rmKk\/s16000\/PylangGhost%2520C2%2520URL%2520from%2520the%2520Windows%2520variant%2520hardcoded%2520and%2520conveniently%2520commented%2520%28Source%2520-%2520kmsec.uk%29.webp?ssl=1\" alt=\"PylangGhost C2 URL from the Windows variant hardcoded and conveniently commented (Source - kmsec.uk)\"><figcaption class=\"wp-element-caption\">PylangGhost C2 URL from the Windows variant hardcoded and conveniently commented (Source \u2013 kmsec.uk)<\/figcaption><\/figure>\n<\/div>\n<p>On macOS and Linux target machines, a shell script is fetched directly and made executable before being run.\u200b<\/p>\n<p>The Windows payload has been uploaded to VirusTotal with the hash 0be2375362227f846c56c4de2db4d3113e197f0c605c297a7e0e0c154e94464e. <\/p>\n<p>The C2 address is stored inside config.py within the archive\u2019s root folder. The RAT is also capable of enumerating Chrome extension IDs installed on the compromised machine, giving attackers a direct path to browser-stored credentials and sensitive personal data.\u200b<\/p>\n<p>Developers and security teams should immediately audit their npm dependency trees for react-refresh-update and @jaime9008\/math-service and remove both packages if found. <\/p>\n<p>All network traffic to malicanbur[.]pro and 173.211.46[.]22:8080 should be blocked at the perimeter. Integrating software composition <a href=\"https:\/\/cybersecuritynews.com\/analyzing-malwares-network-traffic\/\" id=\"83517\" target=\"_blank\" rel=\"noreferrer noopener\">analysis tools<\/a> into build and deployment pipelines helps catch compromised packages before they reach production. <\/p>\n<p>Any unexpected network connections made during package installation should be treated as a serious incident and investigated promptly and thoroughly.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 91%,rgb(169,184,195) 100%)\"><strong>Follow us on\u00a0<a href=\"https:\/\/news.google.com\/publications\/CAAqMggKIixDQklTR3dnTWFoY0tGV041WW1WeWMyVmpkWEpwZEhsdVpYZHpMbU52YlNnQVAB?hl=en-IN&amp;gl=IN&amp;ceid=IN:en\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google News<\/a>,\u00a0<a href=\"https:\/\/www.linkedin.com\/company\/cybersecurity-news\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a>,\u00a0and\u00a0<a href=\"https:\/\/x.com\/cyber_press_org\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">X<\/a>\u00a0to Get More Instant Updates<\/strong>,\u00a0<strong>Set CSN as a Preferred Source in\u00a0<a href=\"https:\/\/www.google.com\/preferences\/source?q=cybersecuritynews.com\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google<\/a>.<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/malicious-npm-packages-deliver-pylangghost-rat\/\">Malicious npm Packages Deliver PylangGhost RAT in New Software Supply Chain Campaign<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Tushar Subhra Dutta<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/malicious-npm-packages-deliver-pylangghost-rat\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Malicious npm Packages Deliver PylangGhost RAT in New Software Supply Chain Campaign A remote access trojan known as PylangGhost has appeared on the npm registry for the first time, concealed inside two malicious JavaScript packages. The malware, first publicly disclosed by Cisco Talos in June 2025 and attributed to the North Korean state-sponsored threat group [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,63,649],"tags":[130],"class_list":["post-11394","post","type-post","status-publish","format-standard","hentry","category-cyber-security","category-cyber-security-news","category-threats","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/11394"}],"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=11394"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/11394\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=11394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=11394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=11394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}