{"id":455,"date":"2026-04-01T08:30:16","date_gmt":"2026-04-01T08:30:16","guid":{"rendered":"https:\/\/thedigitalfortress.us\/?p=455"},"modified":"2026-04-01T08:30:16","modified_gmt":"2026-04-01T08:30:16","slug":"google-attributes-axios-npm-supply-chain-attack-to-north-korean-group-unc1069","status":"publish","type":"post","link":"https:\/\/thedigitalfortress.us\/?p=455","title":{"rendered":"Google Attributes Axios npm Supply Chain Attack to North Korean Group UNC1069"},"content":{"rendered":"<div>\n<p><span class=\"p-author\"><i class=\"icon-font icon-user\">\ue804<\/i><span class=\"author\">Ravie Lakshmanan<\/span><i class=\"icon-font icon-calendar\">\ue802<\/i><span class=\"author\">Apr 01, 2026<\/span><\/span><span class=\"p-tags\">Threat Intelligence \/ Software Security<\/span><\/p>\n<\/div>\n<div id=\"articlebody\">\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg4u0-_Mq5eI-6nWqV9d-E4BTvsdeDTEcK8Bo7pHnANyD6m8b8d5dPcx86sb1P-PjfLce84hgNF8ja8y2tvnYjlmvE4VGzyvAyGqd6TGOxYei3Oz-F_IvVEDxAvamRe4acysr0FqtfWgbLbDhBQxy6ovy2_V47P2d-1qDZig0pcPPnxTCEGfTzKnUXnJEgU\/s1700-e365\/axios-northkorea.jpg\" style=\"display: block;  text-align: center; clear: left; float: left;\"><\/a><\/div>\n<p>Google has <a href=\"https:\/\/cloud.google.com\/blog\/topics\/threat-intelligence\/north-korea-threat-actor-targets-axios-npm-package\" rel=\"noopener\" target=\"_blank\">formally attributed<\/a> the supply chain compromise of the popular Axios npm package to a financially motivated North Korean threat activity cluster tracked as <strong>UNC1069<\/strong>.<\/p>\n<p>\u00abWe have attributed the attack to a suspected North Korean threat actor we track as UNC1069,\u00bb John Hultquist, chief analyst at Google Threat Intelligence Group (GTIG), told The Hacker News in a statement.<\/p>\n<p>\u00abNorth Korean hackers have deep experience with supply chain attacks, which they&#8217;ve historically used to steal cryptocurrency. The full breadth of this incident is still unclear, but given the popularity of the compromised package, we expect it will have far reaching impacts.\u00bb<\/p>\n<p>The development comes after threat actors seized control of the package maintainer&#8217;s npm account to push two trojanized versions 1.14.1 and 0.30.4 that introduced a malicious dependency named \u00abplain-crypto-js\u00bb that&#8217;s used to deliver a cross-platform backdoor capable of infecting Windows, macOS, and Linux systems.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/vpn-risk-report-inside-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgWajeG0cdaapf1GKTZRUZUB7BzuYGegyw5k0eAorJXlmkFdYCCeLXXhXYJuXU9lWD33rV6rRnIyly3czoNfYifpxk1eGA5slItPmim3HkubXoQMgC4J7hdQPywxGbWq7Eqeff_o6s2Fq-WmSFd5guwdLn7IqpveMqULqtVnd-ndnljWYGj45EkMFB7m0qm\/s728-e100\/z-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Rather than introducing any code changes to Axios, the attack leverages a postinstall hook within the \u00abpackage.json\u00bb file of the malicious dependency to achieve stealthy execution. Once the compromised Axios package is installed, npm automatically triggers the execution of malicious code in the background.<\/p>\n<p><a name=\"more\"\/><\/p>\n<p>Specifically, the \u00abplain-crypto-js\u00bb package functions as a \u00abpayload delivery vehicle\u00bb for an obfuscated JavaScript dropper dubbed SILKBELL (\u00absetup.js\u00bb), which fetches the appropriate next-stage from a remote server based on the victim&#8217;s operating system.<\/p>\n<p>As previously detailed by The Hacker News, the Windows execution branch delivers PowerShell malware, a C++ Mach-O binary for macOS, and a Python backdoor for Linux systems. The dropper also performs a cleanup to remove itself and replace the \u00abplain-crypto-js\u00bb package&#8217;s \u00abpackage.json\u00bb file with a clean version that does not have the postinstall hook.<\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" class=\"tr-caption-container\" style=\"float: left;\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi-INPXY0ZSI_LBYJhbmZyqamH1PQlfh5ZfryzZIPg0Nn_ojjuKO1XO2RHZn7PZfkSw_jIew5EJoEHmrcJD3P3a-KG1Q5C5ofTMzfU28IE_Jha5sGl8E1XRJRorEQZidf-i9QKCt7FP96GFKrl2aYRqghFIjzz3ihMXw9cuFRhVXgmuMbjOIF5vClUOsLTu\/s1700-e365\/elastic.jpeg\" style=\"clear: left; display: block; margin-left: auto; margin-right: auto;  text-align: center;\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi-INPXY0ZSI_LBYJhbmZyqamH1PQlfh5ZfryzZIPg0Nn_ojjuKO1XO2RHZn7PZfkSw_jIew5EJoEHmrcJD3P3a-KG1Q5C5ofTMzfU28IE_Jha5sGl8E1XRJRorEQZidf-i9QKCt7FP96GFKrl2aYRqghFIjzz3ihMXw9cuFRhVXgmuMbjOIF5vClUOsLTu\/s1700-e365\/elastic.jpeg\" alt=\"\" border=\"0\" data-original-height=\"1168\" data-original-width=\"1864\"\/><\/a><\/td>\n<\/tr>\n<tr>\n<td class=\"tr-caption\" style=\"text-align: center;\">Image Source: Elastic Security Labs<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The backdoor, codenamed WAVESHAPER.V2, is assessed to be an updated version of WAVESHAPER, a C++ backdoor deployed by UNC1069 in attacks aimed at the cryptocurrency sector. The threat actor has been operational since 2018. The supply chain attack&#8217;s links to UNC1069 were first flagged by Elastic Security Labs, citing functionality overlaps.<\/p>\n<p>The three WAVESHAPER.V2 variants support four different commands, while beaconing to the command-and-control (C2) server at 60-second intervals &#8211;<\/p>\n<ul>\n<li><strong>kill<\/strong>, to terminate the malware&#8217;s execution process.<\/li>\n<li><strong>rundir<\/strong>, to enumerate directory listings, along with file paths, sizes, and creation\/modification timestamps.<\/li>\n<li><strong>runscript<\/strong>, to run AppleScript, PowerShell, or shell commands based on the operating system.<\/li>\n<li><strong>peinject<\/strong>, to decode and execute arbitrary binaries.<\/li>\n<\/ul>\n<p>\u00abWAVESHAPER.V2 is a direct evolution of WAVESHAPER, a macOS and Linux backdoor previously attributed to UNC1069,\u00bb Mandiant and GTIG said. \u00abWhile the original WAVESHAPER uses a lightweight, raw binary C2 protocol and employs code packing, WAVESHAPER.V2 communicates using JSON, collects additional system information, and supports more backdoor commands.\u00bb<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/fast-response-not-fast-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjgi9mu68zRUz1nCLLKmkAA2aBtNfP_JOTXulZoB6yImso1Onk7oM_LI0kdROu8fq5S5oDyMtd1j50W44Ye_8Sl3zQZiE8A9tmFr6kejGKjGh74uoxluF-RyBq_unDQlzjXZHCqQeuYXBoogda5zf0w-zXd6v0rIM7fEw6TcFf_QGWBu5Mop-djkEaOUa5A\/s728-e100\/tl-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>\u00abDespite these upgrades, both versions accept their C2 URL dynamically via command-line arguments, share identical C2 polling behaviors and an uncommon User-Agent string, and deploy secondary payloads to identical temporary directories (e.g., \/Library\/Caches\/com.apple.act.mond).\u00bb\u00a0<\/p>\n<p>To <a href=\"https:\/\/www.upwind.io\/feed\/from-nodes-to-snakes-npm-supply-chain\" rel=\"noopener\" target=\"_blank\">mitigate the threat<\/a>, users are advised to audit dependency trees for compromised versions (and downgrade to a safe version, if found), pin Axios to a known safe version in the \u00abpackage-lock.json\u00bb file to prevent accidental upgrades, check for presence of \u00abplain-crypto-js\u00bb in \u00abnode_modules,\u00bb terminate malicious processes, block C2 domain (\u00absfrclak[.]com,\u00bb IP address: 142.11.206[.]73), isolate affected systems, and rotate all credentials.<\/p>\n<p>\u00abThe Axios attack should be understood as a template, not a one-time event. The level of operational sophistication documented here, including compromised maintainer credentials, pre-staged payloads built for three operating systems, both release branches hit in under 40 minutes, and built-in forensic self-destruction, reflects a threat actor that planned this as a scalable operation,\u00bb ReversingLabs Chief Software Architect Tomislav Peri\u010din told The Hacker News.<\/p>\n<p>\u00abIf this campaign is now appearing in PyPI and NuGet, that&#8217;s consistent with what the attack mechanics already suggest: the goal was maximum developer reach. Organizations need to audit not just their npm dependencies, but every package manager feeding their build pipelines, and treat any secrets exposed in affected environments as compromised, regardless of which registry they touched.\u00bb<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ue804Ravie Lakshmanan\ue802Apr 01, 2026Threat Intelligence \/ Software Security Google has formally attributed the supply chain compromise of the popular Axios npm package to a financially motivated North Korean threat activity&hellip;<\/p>\n","protected":false},"author":1,"featured_media":456,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[220,1004,980,219,2,91,337,247,39,218,1005],"class_list":["post-455","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-attack","tag-attributes","tag-axios","tag-chain","tag-google","tag-group","tag-korean","tag-north","tag-npm","tag-supply","tag-unc1069"],"_links":{"self":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=455"}],"version-history":[{"count":0,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/455\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/media\/456"}],"wp:attachment":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}