{"id":10923,"date":"2026-02-25T10:03:41","date_gmt":"2026-02-25T10:03:41","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/02\/25\/microsoft-warns-of-hackers-attacking-developers-with-malicious-next-js-repositories\/"},"modified":"2026-02-25T10:03:41","modified_gmt":"2026-02-25T10:03:41","slug":"microsoft-warns-of-hackers-attacking-developers-with-malicious-next-js-repositories","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/02\/25\/microsoft-warns-of-hackers-attacking-developers-with-malicious-next-js-repositories\/","title":{"rendered":"Microsoft Warns of Hackers Attacking Developers with Malicious Next.js Repositories"},"content":{"rendered":"<p>    Microsoft Warns of Hackers Attacking Developers with Malicious Next.js Repositories<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 coordinated attack campaign is actively targeting software developers through malicious repositories disguised as legitimate Next.js projects and technical assessment materials. <\/p>\n<p>The attackers rely on job-themed lures, presenting fake recruitment challenges that convince developers to clone and run poisoned code on their own machines. <\/p>\n<p>Once a developer executes the project, it silently connects to attacker-controlled command-and-control (C2) infrastructure, granting hackers remote access to the developer\u2019s system along with any sensitive data stored on it.<\/p>\n<p>The campaign was first spotted through suspicious outbound network connections originating from Node.js processes on affected developer machines. <\/p>\n<p>These processes were repeatedly reaching out to known C2 IP addresses, which prompted a deeper review of the execution chains behind those connections. <\/p>\n<p>By correlating network activity with process telemetry, analysts traced the Node.js execution back to malicious repositories, including one hosted on Bitbucket presented as a recruiting-themed <a href=\"https:\/\/cybersecuritynews.com\/cybersecurity-risk-assessment-in-ma-deals-what-investors-often-miss-a-note-from-serhii-mikhalap\/\" id=\"118730\" target=\"_blank\" rel=\"noreferrer noopener\">technical assessment<\/a> and another using the naming convention \u201cCryptan-Platform-MVP1.\u201d<\/p>\n<p>Microsoft Defender Experts and the <a href=\"https:\/\/www.microsoft.com\/en-us\/security\/blog\/2026\/02\/24\/c2-developer-targeting-campaign\/\" id=\"https:\/\/www.microsoft.com\/en-us\/security\/blog\/2026\/02\/24\/c2-developer-targeting-campaign\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Microsoft Defender Security Research Team identified a broader cluster<\/a> of related repositories by pivoting on shared code structure, loader logic, and naming patterns. <\/p>\n<p>Repository families such as \u201cCryptan,\u201d \u201cJP-soccer,\u201d \u201cRoyalJapan,\u201d and \u201cSettleMint\u201d carried near-duplicate variants labeled v1, master, demo, platform, and server. <\/p>\n<p>This consistent structure helped analysts uncover additional repositories not referenced in observed telemetry but exhibiting the same execution logic and staging infrastructure.<\/p>\n<p>The scale of this campaign makes it particularly dangerous for development teams operating in corporate environments. <\/p>\n<p>Developer machines routinely hold access to high-value assets including source code, environment secrets, cloud API keys, database credentials, and build pipelines. <\/p>\n<p>When untrusted code runs on a corporate device, a single compromise can quickly extend beyond one endpoint and potentially expose an organization\u2019s entire infrastructure.<\/p>\n<p>This campaign reflects a calculated shift in how attackers approach software supply chain threats. <\/p>\n<p>By embedding malicious behavior inside what appears to be a normal project, hackers can achieve reliable <a href=\"https:\/\/cybersecuritynews.com\/notepad-code-execution-vulnerability\/\" id=\"142544\" target=\"_blank\" rel=\"noreferrer noopener\">code execution<\/a> while blending into routine developer workflows, making this a significant threat to development teams worldwide.<\/p>\n<h2 class=\"wp-block-heading\" id=\"three-entry-points-one-shared-backdoor\"><strong>Three Entry Points, One Shared Backdoor<\/strong><\/h2>\n<p>All three execution paths in this campaign lead to the same result: runtime retrieval and in-memory execution of attacker-controlled JavaScript. <\/p>\n<p>The first path abuses Visual Studio Code workspace automation. When a developer opens and trusts a project folder, the\u00a0<code>.vscode\/tasks.json<\/code>\u00a0file is pre-configured with\u00a0<code>runOn: \"folderOpen,\"<\/code>\u00a0immediately triggering a Node.js script that fetches a JavaScript loader from a Vercel-hosted staging endpoint. <\/p>\n<p>After execution, the script begins beaconing to attacker-controlled infrastructure.<\/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\/AVvXsEhOmQtQNDU9jUkuk0diJ6Yo_P63z8CQSpnStoE_paXQIDb2ws9vzVPgbmVQ8c3HvUTCJfPxXxj1n2qO7gySo6reEkZTyT43BOdOhTwxrDBmm8msSBZLAXBws5RyXZDwxDlap5zve14ohMYZh8aZa9wnl4t6V9cS-z2RC-z1cBscO5DX1mNSA95Pi0uSv5A\/s16000\/Telemetry%2520showing%2520a%2520VS%2520Code-adjacent%2520Node%2520script%2520initiating%2520outbound%2520access%2520to%2520a%2520Vercel%2520staging%2520endpoint%2520%28Source%2520-%2520Microsoft%29.webp?ssl=1\" alt=\"Telemetry showing a VS Code-adjacent Node script initiating outbound access to a Vercel staging endpoint (Source - Microsoft)\"><figcaption class=\"wp-element-caption\">Telemetry showing a VS Code-adjacent Node script initiating outbound access to a Vercel staging endpoint (Source \u2013 Microsoft)<\/figcaption><\/figure>\n<\/div>\n<p>The second path fires when a developer starts the development server using\u00a0<code>npm run dev<\/code>. Trojanized assets, such as a modified\u00a0<code>jquery.min.js<\/code>, decode a base64-encoded URL and retrieve the same JavaScript loader from Vercel. <\/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\/AVvXsEgOhJQQMtolTSvLhd6LVYEdGfpjHZtChHfrLFEnwQGMQHSqUp6CakfOxp_I0RBkQbsjVb1zThqiI8wL5-QAoypdO_L3cxpU-nfOcEHhnZP3Mtk0O1c7GWaTlrGheH_XiGR-P6doQ0IpthF_Ats1pNMC0QrbQnka0qkHXT6a8wO4jD_4QnLLU_JvqAV7Glg\/s16000\/Telemetry%2520showing%25C2%25A0node%2520server%2520-%2520server.js%25C2%25A0reaching%2520out%2520to%2520a%2520Vercel-hosted%2520staging%2520endpoint%2520%28Source%2520-%2520Microsoft%29.webp?ssl=1\" alt=\"Telemetry showing\u00a0node server - server.js\u00a0reaching out to a Vercel-hosted staging endpoint (Source - Microsoft)\"><figcaption class=\"wp-element-caption\">Telemetry showing\u00a0node server \u2013 server.js\u00a0reaching out to a Vercel-hosted staging endpoint (Source \u2013 Microsoft)<\/figcaption><\/figure>\n<\/div>\n<p>The third path triggers on server startup, where malicious backend routes decode a hidden base64 endpoint from a\u00a0<code>.env<\/code>\u00a0file, transmit the full process environment \u2014 including cloud API keys and access tokens \u2014 to the attacker, and execute attacker-supplied JavaScript via dynamic compilation.<\/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\/AVvXsEgcQNnRAnyWiiaOKurPsP0mfGd_F_pJaINM5e3hKGlB1K28p2bk0yo2lmE33wl2ZjL_Lggha2n5STR7ok6cP1tTzZn5IMpSOEuBarnezl3bz7OCJ7gz9rYgcRvW4Smb0ss-lWx0CUnERS7AURrjERUxDSaSZFQNrwK6yQ0JAi1M2JLehPx1Ek92owbto2s\/s16000\/Backend%2520server%2520startup%2520path%2520where%2520a%2520module%2520import%2520decodes%2520a%2520base64%2520endpoint%2520%28Source%2520-%2520Microsoft%29.webp?ssl=1\" alt=\"Backend server startup path where a module import decodes a base64 endpoint (Source - Microsoft)\"><figcaption class=\"wp-element-caption\">Backend server startup path where a module import decodes a base64 endpoint (Source \u2013 Microsoft)<\/figcaption><\/figure>\n<\/div>\n<p>Once any of these paths fires, a lightweight Stage 1 payload profiles the host and begins polling the C2 server at fixed intervals. <\/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\/AVvXsEjqG9SgQG2uy_bVSjsoVpBoBzqHp4IvvHRfZPSeSDYN5FBLWTwgr-mRE7UvlIN-wsGWMuH7fFIU2E5sJ3Z56aGjO-xc7YTJeJv8rdf95cro7Z0tuCHQHLkklaYOJYk6e-V7yUAnJHgfF7VMn7pacOUBkYkEONF5P_kXh77zPfAl8SaTVS34H1ObwA9B2Bc\/s16000\/Stage%25201%2520registrar%2520payload%2520retrieved%2520at%2520runtime%2520and%2520executed%2520by%2520Node.js%2520%28Source%2520-%2520Microsoft%29.webp?ssl=1\" alt=\"Stage 1 registrar payload retrieved at runtime and executed by Node.js (Source - Microsoft)\"><figcaption class=\"wp-element-caption\">Stage 1 registrar payload retrieved at runtime and executed by Node.js (Source \u2013 Microsoft)<\/figcaption><\/figure>\n<\/div>\n<p>Stage 2 then takes over, providing persistent operator-driven tasking, directory browsing, sensitive file collection, and staged uploads of stolen data to attacker infrastructure.<\/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\/AVvXsEiowuzivTma9ldKdvH4U0drc10ylb-8CjhA3Sa0EDrLpkbN8s9rNvXYQse3LsQoOqtvNUEq8WaDVdIkMZnJWEajQnhteqO5sCSFd8nTnoBr-DV5fL_hlZKGP0kXw-e9WofiXmaq7N3JpgYere-P0STbfnMAz_16a1HJ9V-hr56IQhRg2i2ommB0Nh7veeI\/s16000\/Stage%25202%2520staged%2520upload%2520workflow%2520observed%2520in%2520telemetry%2520%28Source%2520-%2520Microsoft%29.webp?ssl=1\" alt=\"Stage 2 staged upload workflow observed in telemetry (Source - Microsoft)\"><figcaption class=\"wp-element-caption\">Stage 2 staged upload workflow observed in telemetry (Source \u2013 Microsoft)<\/figcaption><\/figure>\n<\/div>\n<p>Developers should enable Visual Studio Code Workspace Trust and Restricted Mode to block automatic code execution in unknown folders. <\/p>\n<p>Organizations should apply attack surface reduction rules to prevent <a href=\"https:\/\/cybersecuritynews.com\/researchers-obfuscated-weaponized-net-assemblies\/\" id=\"112724\" target=\"_blank\" rel=\"noreferrer noopener\">obfuscated script<\/a> execution, enforce strong authentication and conditional access for developer accounts, and avoid storing production credentials on development machines. <\/p>\n<p>Security teams should monitor for unusual Node.js outbound connections using\u00a0<code>DeviceNetworkEvents<\/code>\u00a0and\u00a0<code>DeviceProcessEvents<\/code>\u00a0hunting queries, and perform identity risk triage whenever a developer endpoint compromise is suspected.<\/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-next-js-repositories\/\">Microsoft Warns of Hackers Attacking Developers with Malicious Next.js Repositories<\/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-next-js-repositories\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft Warns of Hackers Attacking Developers with Malicious Next.js Repositories A coordinated attack campaign is actively targeting software developers through malicious repositories disguised as legitimate Next.js projects and technical assessment materials. The attackers rely on job-themed lures, presenting fake recruitment challenges that convince developers to clone and run poisoned code on their own machines. Once [&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-10923","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\/10923"}],"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=10923"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/10923\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=10923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=10923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=10923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}