{"id":224,"date":"2026-03-11T08:59:23","date_gmt":"2026-03-11T08:59:23","guid":{"rendered":"https:\/\/thedigitalfortress.us\/?p=224"},"modified":"2026-03-11T08:59:23","modified_gmt":"2026-03-11T08:59:23","slug":"unc6426-exploits-nx-npm-supply-chain-attack-to-gain-aws-admin-access-in-72-hours","status":"publish","type":"post","link":"https:\/\/thedigitalfortress.us\/?p=224","title":{"rendered":"UNC6426 Exploits nx npm Supply-Chain Attack to Gain AWS Admin Access in 72 Hours"},"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\">Mar 11, 2026<\/span><\/span><span class=\"p-tags\">DevSecOps \/ AI 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\/AVvXsEjFUREkqLhVFM9jnUqkHPMEmAj2KBdTrXOX_m8t7zEUdK4NE16BBL0XQHZ9q4KPVDfKecgf4KE64vzAW9XDvn6axd6fIU9WZy5Lqe348eT7rKvmsLU3ByDPajxWFlkTt6CQTNkmNv8e57XrvWAaM-YaXtD0QP1-grx4XPtV_Osxw-vjtPfw4A70O5x41yvq\/s1700-e365\/aws.jpg\" style=\"display: block;  text-align: center; clear: left; float: left;\"><\/a><\/div>\n<p>A threat actor known as <strong>UNC6426<\/strong> leveraged keys stolen following the supply chain compromise of the nx npm package last year to completely breach a victim&#8217;s cloud environment within a span of 72 hours.<\/p>\n<p>The attack started with the theft of a developer&#8217;s GitHub token, which the threat actor then used to gain unauthorized access to the cloud and steal data.<\/p>\n<p>\u00abThe threat actor, UNC6426, then used this access to abuse the GitHub-to-AWS OpenID Connect (OIDC) trust and create a new administrator role in the cloud environment,\u00bb Google <a href=\"https:\/\/cloud.google.com\/security\/report\/resources\/cloud-threat-horizons-report-h1-2026?e=48754805#from-cicd-to-cloud-compromise-real-world-breach-using-openid-connect-abuse-9\" rel=\"noopener\" target=\"_blank\">said<\/a> in its Cloud Threat Horizons Report for H1 2026. \u00abThey abused this role to exfiltrate files from the client&#8217;s Amazon Web Services (AWS) Simple Storage Service (S3) buckets and performed data destruction in their production cloud environments.\u00bb<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/not-fast-enough-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhlXM830ruQd2xT6M7JNeNRjaFa1onD12WjSCHihTFMTzbyfT9h-irPmXy_h3E1HGSs6sdv7FTmnyNVTM5kmSb7BuUtZe8gKoTQt99P1sSzRcqqXpOJP6eoAOhR3DGb6qHx9kOZ_HBZUMmVnsnd0DM7QfUp81bgzTvvgLww6oqB-EhnDfWXH5pWCYhAsyLs\/s728-e100\/tl-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>The supply chain attack targeting the nx npm package took place in August 2025, when unknown threat actors exploited a vulnerable pull_request_target workflow \u2013 an <a href=\"https:\/\/www.praetorian.com\/blog\/pwn-request-hacking-microsoft-github-repositories-and-more\/\" rel=\"noopener\" target=\"_blank\">attack<\/a> <a href=\"https:\/\/www.endorlabs.com\/learn\/pwn-request-threat-a-hidden-danger-in-github-actions\" rel=\"noopener\" target=\"_blank\">type<\/a> referred to as <a href=\"https:\/\/www.sonarsource.com\/blog\/zombie-workflows-a-github-actions-horror-story\/\" rel=\"noopener\" target=\"_blank\">Pwn Request<\/a> \u2013 to obtain elevated privileges and access sensitive data, including a GITHUB_TOKEN, and ultimately push trojanized versions of the package to the npm registry.<\/p>\n<p>The packages were found to embed a postinstall script that, in turn, launched a <a href=\"https:\/\/www.virustotal.com\/gui\/file\/8eea1f65e468b515020e3e2854805f1ef5c611342fa23c4b31d8ed3374286a90\/detection\" rel=\"noopener\" target=\"_blank\">JavaScript credential stealer<\/a> named QUIETVAULT to siphon environment variables, system information, and valuable tokens, including GitHub Personal Access Tokens (PATs), by weaponizing a Large Language Model (LLM) tool already installed on the endpoint to perform the search. The data was uploaded to a public GitHub repository named \u00ab\/s1ngularity-repository-1.\u00bb<\/p>\n<p>Google said an employee at the victim organization ran a code editor application that used the Nx Console plugin, triggering an update in the process and resulting in the execution of QUIETVAULT.<\/p>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjEfFFJ_wrDq-3ihTfkE37VoFS7HH4cGqZfyqSfpWwj4Kk6C_q547nkuIzdkQZEyOQEDhnMSEPx7ZSYQSbCQOCPh2mhdznCGJayi0Xp2bT2ike2Tdx1_dEUKQqehEXAo9DLCEDUFDb4WtJNsT7WXGrD6BwzF6feQ3yJzWw2RH4vLsGnwqw3AOj3gGDY5d9D\/s1700-e365\/google.jpg\" style=\"display: block;  text-align: center; clear: left; float: left;\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjEfFFJ_wrDq-3ihTfkE37VoFS7HH4cGqZfyqSfpWwj4Kk6C_q547nkuIzdkQZEyOQEDhnMSEPx7ZSYQSbCQOCPh2mhdznCGJayi0Xp2bT2ike2Tdx1_dEUKQqehEXAo9DLCEDUFDb4WtJNsT7WXGrD6BwzF6feQ3yJzWw2RH4vLsGnwqw3AOj3gGDY5d9D\/s1700-e365\/google.jpg\" alt=\"\" border=\"0\" data-original-height=\"1341\" data-original-width=\"2592\"\/><\/a><\/div>\n<p>UNC6426 is said to have initiated reconnaissance activities within the client&#8217;s GitHub environment using the stolen PAT two days after the initial compromise using a legitimate open-source tool called <a href=\"https:\/\/github.com\/synacktiv\/nord-stream\" rel=\"noopener\" target=\"_blank\">Nord Stream<\/a> to extract secrets from CI\/CD environments, leaking the credentials for a GitHub service account.<\/p>\n<p>Subsequently, the attackers leveraged this service account and used the utility&#8217;s \u00ab&#8211;aws-role\u00bb parameter to generate temporary AWS Security Token Service (STS) tokens for the \u00abActions-CloudFormation\u00bb role and ultimately allow them to obtain a foothold in the victim&#8217;s AWS environment.<\/p>\n<p>\u00abThe compromised Github-Actions-CloudFormation role was overly permissive,\u00bb Google said. \u00abUNC6426 used this permission to deploy a new AWS Stack with capabilities [\u00abCAPABILITY_NAMED_IAM\u00bb,\u00bbCAPABILITY_IAM\u00bb]. This stack&#8217;s sole purpose was to create a new IAM role and attach the arn:aws:iam::aws:policy\/AdministratorAccess policy to it. UNC6426 successfully escalated from a stolen token to full AWS administrator permissions in less than 72 hours.\u00bb<\/p>\n<p>Armed with the new administrator roles, the threat actor carried out a series of actions, including enumerating and accessing objects within S3 buckets, terminating production Elastic Compute Cloud (EC2) and Relational Database Service (RDS) instances, and decrypting application keys. In the final stage, all of the victim&#8217;s internal GitHub repositories were renamed to \u00ab\/s1ngularity-repository-[randomcharacters]\u00bb and made public.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/fs-report-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjWQgUDT06NQu9vGMPC7BWROmJABTIWg058l7oGKD-v3ZchC8_66xjbclOE9koChsRf5CEKgqrXTVrne_00PdGokh3brhvF-g33I4FYYpTukrvuNQWXZOVAfon6-2axyRoVJ4uOrXPqRhxfZUaJWEm-K9esUS3ql8VSVWAKLqyfhHLgMSXhkMTkcOtGSX7R\/s728-e100\/fs-report-d.png\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>To counter such threats, it&#8217;s advised to use package managers that prevent postinstall scripts or sandboxing tools, apply the principle of least privilege (PoLP) to CI\/CD service accounts and OIDC-linked roles, enforce fine-grained PATs with short expiration windows and specific repository permissions, remove standing privileges for high-risk actions like creating administrator roles, monitor for anomalous IAM activity, and implement strong controls to detect Shadow AI risks.<\/p>\n<p>The incident highlights a case of what has been described by Socket as an AI-assisted supply chain abuse, where the execution is offloaded to AI agents that already have privileged access to the developer&#8217;s file system, credentials, and authenticated tooling.\u00a0<\/p>\n<p>\u00abThe malicious intent is expressed in natural-language prompts rather than explicit network callbacks or hardcoded endpoints, complicating conventional detection approaches,\u00bb the software supply chain security firm <a href=\"https:\/\/socket.dev\/blog\/unauthorized-ai-agent-execution-code-published-to-openvsx-in-aqua-trivy-vs-code-extension\" rel=\"noopener\" target=\"_blank\">said<\/a>. \u00abAs AI assistants become more integrated into developer workflows, they also expand the attack surface. Any tool capable of invoking them inherits their reach.\u00bb<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ue804Ravie Lakshmanan\ue802Mar 11, 2026DevSecOps \/ AI Security A threat actor known as UNC6426 leveraged keys stolen following the supply chain compromise of the nx npm package last year to completely&hellip;<\/p>\n","protected":false},"author":1,"featured_media":225,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[130,129,220,581,430,580,582,39,579,578],"class_list":["post-224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-access","tag-admin","tag-attack","tag-aws","tag-exploits","tag-gain","tag-hours","tag-npm","tag-supplychain","tag-unc6426"],"_links":{"self":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/224","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=224"}],"version-history":[{"count":0,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/224\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/media\/225"}],"wp:attachment":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}