{"id":11537,"date":"2026-03-23T10:03:44","date_gmt":"2026-03-23T10:03:44","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/03\/23\/new-canisterworm-steals-npm-tokens-and-spreads-through-compromised-publisher-accounts\/"},"modified":"2026-03-23T10:03:44","modified_gmt":"2026-03-23T10:03:44","slug":"new-canisterworm-steals-npm-tokens-and-spreads-through-compromised-publisher-accounts","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/03\/23\/new-canisterworm-steals-npm-tokens-and-spreads-through-compromised-publisher-accounts\/","title":{"rendered":"New CanisterWorm Steals npm Tokens and Spreads Through Compromised Publisher Accounts"},"content":{"rendered":"<p>    New CanisterWorm Steals npm Tokens and Spreads Through Compromised Publisher Accounts<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 new wave of supply chain attacks is hitting the npm ecosystem through a self-propagating malware campaign known as CanisterWorm. <\/p>\n<p>The threat, linked to a group tracked as \u201cTeamPCP,\u201d compromises legitimate publisher namespaces and pushes poisoned package versions, effectively turning trusted developer tools into silent delivery mechanisms for credential-stealing code.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>CanisterWorm first came to public attention through early reports from security researchers at Socket and Endor Labs, who traced a recurring pattern of malicious package updates across multiple npm publisher accounts. <\/p>\n<p>The malware is carefully concealed inside what appear to be routine SDK version bumps, making it easy for developers to install it without raising any suspicion.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p><a href=\"https:\/\/research.jfrog.com\/post\/canister-worm\/\" id=\"https:\/\/research.jfrog.com\/post\/canister-worm\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">JFrog researchers identified new, previously unreported compromised package<\/a> versions tied to the CanisterWorm attack, extending the known scope of the campaign well beyond what earlier disclosures had covered. <\/p>\n<p>Their continuous monitoring pipeline surfaced additional affected versions across multiple namespaces \u2014 including packages maintained under\u00a0<code>@emilgroup<\/code>\u00a0and\u00a0<code>@teale.io<\/code>\u00a0\u2014 that had gone undetected in prior public reports.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>The impact of a successful infection goes far beyond a single machine. Once a developer installs one of the tainted packages, CanisterWorm drops a <a href=\"https:\/\/cybersecuritynews.com\/weaponized-python-package-termncolor\/\" id=\"122072\" target=\"_blank\" rel=\"noreferrer noopener\">Python backdoor<\/a> onto the host, begins harvesting npm authentication tokens, and uses those credentials to autonomously spread itself to every package the compromised developer maintains. <\/p>\n<p>This chain-reaction behavior means one affected developer account can become a launchpad for poisoning dozens of downstream packages, putting a wide range of dependent projects and their users at immediate risk.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>What makes CanisterWorm particularly difficult to contain is how naturally it blends into normal development workflows. <\/p>\n<p>By hiding behind version updates and leveraging decentralized infrastructure for command communication, it sidesteps the traditional indicators that most <a href=\"https:\/\/cybersecuritynews.com\/best-cloud-security-tools\/\" id=\"11635\" target=\"_blank\" rel=\"noreferrer noopener\">security tools<\/a> look for, quietly expanding its reach before anyone notices something is wrong.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<h2 class=\"wp-block-heading\" id=\"inside-the-worms-infection-chain\"><strong>Inside the Worm\u2019s Infection Chain<\/strong><\/h2>\n<p>The infection process begins the moment a developer runs\u00a0<code>npm install<\/code>\u00a0on a compromised package. <\/p>\n<p>A malicious\u00a0<code>postinstall<\/code>\u00a0hook embedded inside the\u00a0<code>package.json<\/code>\u00a0file executes automatically and silently drops a Python backdoor onto the host system without any visible warning. <\/p>\n<p>On Linux machines, the worm then registers a persistent background service named\u00a0<code>pgmon<\/code>\u00a0through\u00a0<code>systemd<\/code>, ensuring it stays active and survives system reboots.<\/p>\n<p>Once established, the backdoor continuously polls an Internet Computer Protocol (ICP) canister \u2014 a decentralized, blockchain-hosted endpoint \u2014 that acts as a dead-drop command-and-control server. <\/p>\n<p>This design makes the malicious traffic blend naturally with regular web requests, significantly hampering detection by <a href=\"https:\/\/cybersecuritynews.com\/network-monitoring-tools\/\" id=\"20062\" target=\"_blank\" rel=\"noreferrer noopener\">network monitoring tools<\/a>. <\/p>\n<p>Secondary payloads retrieved through this channel are written to\u00a0<code>\/tmp\/pglog<\/code>, while the worm tracks its execution state inside\u00a0<code>\/tmp\/.pg_state<\/code>.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>The most dangerous phase of the attack is the autonomous spreading routine. The malware scans\u00a0<code>.npmrc<\/code>\u00a0files across the project directory, the user\u2019s home folder, and system-wide configuration paths, searching for\u00a0<code>_authToken<\/code>\u00a0values. <\/p>\n<p>It also reads the\u00a0<code>NPM_TOKEN<\/code>\u00a0and\u00a0<code>NPM_TOKENS<\/code>\u00a0environment variables. With those stolen credentials, a built-in\u00a0<code>deploy.js<\/code>\u00a0script queries the npm registry, locates every package the victim maintains, increments each one\u2019s patch version number, and publishes the tainted update automatically.<\/p>\n<p>Known Compromised Packages:-<\/p>\n<figure class=\"wp-block-table\">\n<table class=\"has-fixed-layout\">\n<thead>\n<tr>\n<th class=\"has-text-align-left\" data-align=\"left\">Package Name<\/th>\n<th class=\"has-text-align-left\" data-align=\"left\">Compromised Version(s)<\/th>\n<th class=\"has-text-align-left\" data-align=\"left\">JFrog X-ray ID<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@pypestream\/floating-ui-dom<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">2.15.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955001<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@leafnoise\/mirage<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">2.0.3<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954938<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@opengov\/ppf-backend-types<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.141.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954962<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>eslint-config-ppf<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.128.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954936<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>react-leaflet-marker-layer<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.1.5<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954942<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>react-leaflet-cluster-layer<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.0.4<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954943<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>react-autolink-text<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">2.0.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954959<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>opengov-k6-core<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954926<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>jest-preset-ppf<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.0.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954956<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>cit-playwright-tests<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954934<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>eslint-config-service-users<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.0.3<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954950<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>babel-plugin-react-pure-component<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.1.6<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954955<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@opengov\/form-renderer<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.2.20<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955058<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@opengov\/qa-record-types-api<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.3<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954970<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@opengov\/form-builder<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.12.3<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954953<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@opengov\/ppf-eslint-config<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.1.11<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954967<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@opengov\/form-utils<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.7.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954958<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>react-leaflet-heatmap-layer<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">2.0.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954931<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@virtahealth\/substrate-root<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955055<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@airtm\/uuid-base32<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954937<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/setting-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.2.3, 0.2.2, 0.2.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955067<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/partner-portal-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.1.3, 1.1.2, 1.1.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955063<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/gdv-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">2.6.3, 2.6.2, 2.6.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955060<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/docxtemplater-util<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.1.4, 1.1.3, 1.1.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955062<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/accounting-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.27.3, 1.27.2, 1.27.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955054<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/task-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.4, 1.0.3, 1.0.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955056<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/setting-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.2.3, 0.2.2, 0.2.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955064<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/task-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.4, 1.0.3, 1.0.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954923<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/partner-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.19.3, 1.19.2, 1.19.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955065<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/numbergenerator-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.3.3, 1.3.2, 1.3.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955066<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/customer-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.54.5, 1.54.4, 1.54.3, 1.54.2, 1.54.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954924<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/commission-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.3, 1.0.2, 1.0.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955068<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/process-manager-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.4.2, 1.4.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955069<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/changelog-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.3, 1.0.2<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955061<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/document-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.43.6, 1.43.5, 1.43.4, 1.43.3, 1.43.2, 1.43.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954947<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/commission-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.0.3, 1.0.2, 1.0.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955053<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/document-uploader<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">0.0.12, 0.0.11, 0.0.10<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955057<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/discount-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.5.3, 1.5.2, 1.5.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954929<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/discount-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.5.2, 1.5.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-955059<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@teale.io\/eslint-config<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.8.16\u20131.8.9 (8 versions)<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954945<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/insurance-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.97.6\u20131.97.1 (6 versions)<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954928<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/account-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.41.2, 1.41.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954949<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/account-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.40.2, 1.40.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954927<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/accounting-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.26.2, 1.26.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954965<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/api-documentation<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.19.2, 1.19.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954960<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/auth-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.25.2, 1.25.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954966<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/auth-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.21.2, 1.21.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954964<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/billing-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.56.2, 1.56.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954951<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/billing-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.57.2, 1.57.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954948<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/claim-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.41.2, 1.41.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954961<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/claim-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.39.2, 1.39.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954925<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/customer-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.55.2, 1.55.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954944<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/document-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.45.2, 1.45.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954941<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/gdv-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">2.6.2, 2.6.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954930<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/insurance-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.95.2, 1.95.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954933<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/notification-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.4.2, 1.4.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954957<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/partner-portal-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.1.2, 1.1.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954952<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/partner-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.19.2, 1.19.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954935<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/payment-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.15.2, 1.15.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954963<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/payment-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.23.2, 1.23.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954969<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/process-manager-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.13.2, 1.13.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954939<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/public-api-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.33.2, 1.33.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954940<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/public-api-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.35.2, 1.35.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954946<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/tenant-sdk<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.34.2, 1.34.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954932<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/tenant-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.33.2, 1.33.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954954<\/td>\n<\/tr>\n<tr>\n<td class=\"has-text-align-left\" data-align=\"left\"><code>@emilgroup\/translation-sdk-node<\/code><\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">1.1.2, 1.1.1<\/td>\n<td class=\"has-text-align-left\" data-align=\"left\">XRAY-954968<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>Anyone running any of the identified compromised package versions should treat their environment as already infected. Developers must immediately rotate all npm publishing tokens stored in\u00a0<code>.npmrc<\/code>\u00a0files, environment variables, and CI\/CD pipeline secrets. <\/p>\n<p>On Linux, the\u00a0<code>pgmon<\/code>\u00a0service must be stopped and disabled using\u00a0<code>systemctl<\/code>, with its associated service files and directories removed entirely. <\/p>\n<p>The temporary files\u00a0<code>\/tmp\/pglog<\/code>\u00a0and\u00a0<code>\/tmp\/.pg_state<\/code>\u00a0must be deleted. Affected\u00a0<code>node_modules<\/code>\u00a0directories should be purged and rebuilt from scratch using verified, safe package versions. <\/p>\n<p>Developers whose tokens were stolen must manually unpublish the compromised package versions from the npm registry, since simply publishing a newer version does not protect downstream users who may still install the infected release. <\/p>\n<p>Running\u00a0<code>npm config set ignore-scripts true<\/code>\u00a0globally prevents\u00a0<code>postinstall<\/code>\u00a0hooks from firing silently on future installs, serving as a practical defensive measure against this class of supply chain attack.<a href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/11146061\/98b09834-7b2d-44ab-8b0f-130c8106d1f6\/New-CanisterWorm-Steals-npm-Tokens-and-Spreads-Through-Compromised-Publisher-Accounts.pdf?AWSAccessKeyId=ASIA2F3EMEYESM4MSFYY&amp;Signature=SS4fCifnVbR2jbJ6l92jjT5FHX4%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjELH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBMGvpwfo4XJdfLWOtYCGbQrf49rEJSv0r3EmqhF0As4AiEA8bQZHMQnTb5EIXQF4y2qKiI%2FX9561dATjxnZOP8Kpvcq8wQIeRABGgw2OTk3NTMzMDk3MDUiDDCIDirF%2Fds1NyhR9yrQBJPTcR77egEhz%2FpBdl1lYEbgURsd0%2BSh3gReEDDqkYr%2F441j6ZR78ZetGmDa8%2FghrRzO9xSK5TF5AkDUtSuMfEB%2BDTULoKDide3GVRmVUv3BL1%2FOLuP8CPmYLzO5oEjWnpkq42gYXmyq3aiZInGJ6WSzlqaeAbyBciPQzzLY4JAuI3V3NKXdHr8MtdBxb7TJHrPjAmlo4iyChhb%2BNJ7GSDqWYvymPl%2Bvqv4bVY3lG70qI%2BwGBrbv%2B5UkhzfA0IUQSh5l1KI4bGf4VpM4%2BEgcyJo8ooNsOkzQgTRZHKc7OQV91aaNSZWfrh8EsQGAC11fp60KndyAtjF8a8rD0i2VlYPesSAB4CfPEtJt9enijmqPF2OZfxE6tqTO4BBv%2BIZs95RgGZd%2FTFa6Gcah%2Fre1LV1URzlD2p9BbTkBAPZPMnHDVFQNYCNnd%2FKNzw%2FJ968q5l9A3YuJf0FKbGx6v0QOw6qV2wVoONH2eCLxj3X62YH4xeRl3lhgUVQ6TofxSV%2FPsAlfGPEd0GSBzFayg8U3dpiAFMz%2Fwzf37t7ZGeQamB1N7HxWW4rTpsBgG5Qx9N336MGvupwUauVYazir5H6JH7nTVLULMict4TvI7tsQSTWU%2F7hqcvdkVnD9BJ4WQ2Lk8vSOZiNjq9PgaRIPjRjWhqylcWE43YvF5gcH%2FLFcNGZTiyRhDaAaoDqB2cAQAZJdS9RaCTG%2FqBDwoROwyzXFOvjn97rmHH0ycFf3c1h%2B3agrTWGTHFjGj%2FBUBdA3y3VvgoLo6aOC8nv7AteXNUTq98Mw1u6DzgY6mAH0fFWZYHGkb03BvWfePlA6BQUV00k%2BN2qElTEKS8Vv9MTc4WYYE36Y5dYoxhRhmCnV2GkfPCs0OBssWw2MKzE%2BvHht313aszh8q7Jldx8AU7VjpNPe6qUx%2F7bb5je1j8b%2FsAl2Wo0AFd9jZGnW0KHvIyPcOJ6eSc20w%2B9zsFuZefgS17c%2BKKmGgjar2k52XfLc3gI1BJJk8Q%3D%3D&amp;Expires=1774256080\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 92%,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\/new-canisterworm-steals-npm-tokens\/\">New CanisterWorm Steals npm Tokens and Spreads Through Compromised Publisher Accounts<\/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\/new-canisterworm-steals-npm-tokens\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>New CanisterWorm Steals npm Tokens and Spreads Through Compromised Publisher Accounts A new wave of supply chain attacks is hitting the npm ecosystem through a self-propagating malware campaign known as CanisterWorm. The threat, linked to a group tracked as \u201cTeamPCP,\u201d compromises legitimate publisher namespaces and pushes poisoned package versions, effectively turning trusted developer tools into [&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-11537","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\/11537"}],"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=11537"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/11537\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=11537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=11537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=11537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}