Conceptual image illustrating cybersecurity threats from malicious npm packages targeting digital security and data protection.

Your development environment faces a sophisticated supply chain attack where threat actors created malicious npm packages that impersonate legitimate PostCSS tools. Security researchers discovered three packages - aes-decode-runner-pro, postcss-minify-selector, and postcss-minify-selector-parser - published by npm user "abdrizak" that collectively accumulated over 1,000 downloads before detection. These packages masquerade as PostCSS build tools while actually delivering a Windows remote access trojan (RAT) to developer machines. (Source: The Hacker News)

The attack exploits developer trust in the npm ecosystem by mimicking postcss-selector-parser, a widely-used library with more than 127 million weekly downloads. When developers install what appears to be a legitimate PostCSS minification tool, they unknowingly execute a multi-stage infection chain that establishes persistent backdoor access to their Windows systems. The malware grants attackers capabilities to steal Chrome credentials, harvest data from browser extensions, execute shell commands, and transfer files to command-and-control servers.

This campaign represents part of a broader assault on the TypeScript and npm ecosystems. Additional malicious packages include @withgoogle/stitch-sdk impersonating Google's Stitch AI tool, apintergrationpost delivering the MYRA Linux RAT, and a cluster of five interconnected packages distributing Windows droppers. The activity overlaps with North Korean operation PolinRider, which has compromised nearly 2,000 GitHub repositories to deploy the BeaverTail downloader and InvisibleFerret backdoor.

Attackers gain access to source code repositories, deployment credentials, and internal documentation through infected development environments. The malware's ability to bypass Chrome's app-bound encryption protections means stored passwords, API keys, and authentication tokens become accessible to attackers. This transforms a single developer infection into potential enterprise-wide compromise through stolen credentials and poisoned code commits.

Key Insight: For organizations, compromised developer machines represent critical security failures.

Attack Chain: From Package Installation to Remote Access

The infection chain begins when developers unknowingly install packages that appear legitimate but contain embedded JavaScript droppers. The malicious code executes during the standard npm installation process, writing a PowerShell script named settings.ps1 to disk. This script functions as a downloader, using curl.exe to retrieve a ZIP archive from the external server nvidiadriver[.]net.

The downloaded archive contains multiple components that work together to establish persistent access. A Visual Basic Script (update.vbs) executes via wscript.exe, setting up a Python runtime environment on the compromised host. The package includes Python extension modules compiled using Nuitka, making reverse engineering more difficult while maintaining cross-platform compatibility.

The core malware logic resides in several Python native extension modules:

  • config.pyd stores command IDs, C2 URLs, and registry key names for persistence
  • api.pyd manages HTTP packet exchange with command servers
  • audiodriver.pyd orchestrates the main RAT execution loop
  • command.pyd profiles the host, performs VM detection checks, handles file transfers, and executes shell commands
  • auto.pyd steals Chrome credentials and extension data, bypassing app-bound encryption (ABE) protections
  • util.pyd provides tar/gzip archive functionality for data exfiltration

The RAT establishes communication with its command-and-control server at IP address 95.216.92[.]207 on port 8080. This connection enables attackers to gather host information, download and upload files, execute arbitrary shell commands, and maintain persistent access across system reboots. The modular architecture allows operators to selectively deploy capabilities based on their objectives.

Developers represent particularly valuable targets for supply chain attacks due to their privileged access across multiple systems and repositories. A compromised developer machine provides attackers with legitimate credentials, SSH keys, API tokens, and direct access to source code repositories. The campaign specifically targets developer credentials from eight sources including Claude Code, git configurations, GitHub CLI, npm configurations, and Docker configs stored in ~/.docker/config.json.

The broader campaign extends beyond PostCSS impersonation. The MYRA RAT delivered through the "apintergrationpost" package compiles a native C rootkit during installation, establishes three independent persistence mechanisms, and masquerades as a systemd service on Linux systems. It supports fileless execution and provides interactive shell access with live screen streaming capabilities.

Another variant uses blockchain infrastructure for command relay. The "gonex-AI/Understand-Anything" knowledge graph tool was compromised to beacon hardcoded C2 servers, XOR-decrypt bot clients, and resolve second-stage commands from Tron blockchain addresses. The latest transaction encodes a BSC transaction hash carrying the active payload - using public blockchain as a write-once, read-anywhere relay that cannot be taken down by defenders.

The PolinRider operation demonstrates advanced obfuscation techniques, injecting JavaScript into legitimate developers' configuration files across nearly 2,000 compromised GitHub repositories. The campaign hides payloads in horizontal whitespace within pull request diffs and uses fabricated test evidence to appear legitimate. This delivers BeaverTail malware that subsequently deploys the InvisibleFerret backdoor for long-term access.

Risk to Development Teams and Enterprise Networks

Your development teams represent critical entry points into enterprise systems, and the credential harvesting capabilities of these malicious packages extend far beyond individual developer workstations. The RAT's ability to steal Chrome credentials and extension data means attackers gain access to your developers' GitHub tokens, cloud service accounts, and internal documentation portals. These credentials often bypass corporate security controls since they originate from trusted developer machines already inside your network perimeter.

The Python-based RAT establishes persistent backdoor access through multiple mechanisms, including registry modifications and systemd service masquerading. This persistence means infected machines continue operating as attacker-controlled nodes even after routine reboots or security updates. Your developers unknowingly provide attackers with authenticated access to source code repositories, CI/CD pipelines, and production deployment systems.

The broader npm ecosystem attacks demonstrate coordinated targeting of development infrastructure. The apintergrationpost package delivers the MYRA Linux RAT with rootkit capabilities, while @withgoogle/stitch-sdk specifically targets eight credential sources including GitHub CLI, Docker configurations, and SSH keys. These parallel campaigns indicate threat actors systematically mapping and exploiting developer trust relationships across different operating systems and toolchains.

Your infected developer machines become launching points for lateral movement into corporate networks. Attackers use the RAT's shell command execution and file transfer capabilities to pivot from development environments to production systems. The malware's VM detection routines help it avoid sandbox analysis, allowing it to operate undetected in your actual development infrastructure where sensitive operations occur.

The PolinRider operation demonstrates how North Korean threat actors poison legitimate repositories through fabricated pull requests with hidden payloads in horizontal whitespace. This technique bypasses standard code review processes since the malicious changes appear invisible in typical diff views. Your developers reviewing and merging these PRs inadvertently introduce BeaverTail malware and the InvisibleFerret backdoor into your codebase.

The blockchain-based command and control infrastructure used in the gonex-AI attack creates detection challenges for your security teams. Attackers encode commands in Tron blockchain transactions, using BSC transaction hashes to relay payloads through public infrastructure. This approach bypasses traditional network monitoring since blockchain queries appear as legitimate cryptocurrency-related traffic.

Your build pipelines face contamination when infected developers commit code or push container images. The malware's ability to download and upload files means attackers can inject backdoors into your software products before distribution to customers. This supply chain poisoning extends your breach beyond internal systems to affect downstream users of your applications.

Compliance violations emerge when attackers access customer data through compromised developer credentials. Your developers often have elevated permissions to debug production issues, and stolen credentials grant attackers equivalent access to regulated data. The extended dwell time before detection - potentially weeks given the malware's stealth techniques - increases the scope of data exposure and regulatory penalties.

The financial impact compounds through multiple vectors: incident response costs, system remediation, customer notification requirements, and potential litigation from affected parties. Your intellectual property faces theft through the RAT's file exfiltration capabilities, while competitive advantage erodes if proprietary algorithms or business logic reaches competitors or threat actors selling stolen code.

Immediate Detection and Response Actions

Your most urgent priority is verifying whether any developer machine has downloaded the malicious packages. Check your organization's npm audit logs and package management history for installations of aes-decode-runner-pro, postcss-minify-selector, or postcss-minify-selector-parser from user "abdrizak". These packages remain available on npm, so ongoing installations could still occur.

Within the next 24 hours, execute these detection commands across all developer workstations:

  • Run npm ls aes-decode-runner-pro postcss-minify-selector postcss-minify-selector-parser in every project directory to identify direct or transitive dependencies
  • Search package-lock.json and yarn.lock files for the string "abdrizak" to catch any packages from this publisher
  • Query Windows Event ID 4688 (Process Creation) logs for wscript.exe launching files named update.vbs
  • Check for PowerShell scripts named settings.ps1 in user temp directories and recent downloads
  • Monitor network connections to IP address 95.216.92.207 on port 8080 in firewall logs

The malware creates specific artifacts you can detect through filesystem and registry analysis. Search for Python runtime installations in unusual locations, particularly if accompanied by .pyd extension files compiled with Nuitka. These compiled modules - including config.pyd, api.pyd, audiodriver.pyd, command.pyd, auto.pyd, and util.pyd - handle different RAT functions from C2 communication to credential theft.

Your Chrome browser stores become primary targets for data extraction. The malware bypasses app-bound encryption (ABE) protections to harvest saved passwords and extension data. Check Chrome's Local State file for unexpected modifications and review extension permissions for any recently added or modified entries. The RAT specifically targets Chrome credential stores, making browser-saved passwords and authentication tokens vulnerable.

Network indicators provide clear evidence of compromise. Besides the primary C2 server at 95.216.92.207:8080, monitor DNS queries for nvidiadriver.net, which serves as the initial payload delivery domain. The malware uses curl.exe for downloads, so Windows Defender logs showing curl activity to these domains indicate active infection.

For the parallel campaigns affecting npm users, expand your search to include apintergrationpost, which delivers the MYRA Linux RAT, and @withgoogle/stitch-sdk, which steals credentials from Claude Code, git configurations, SSH keys, GitHub CLI, npm configs, and Docker configurations. The domain stitch-production.org receives exfiltrated developer credentials from the fake Google package.

In environments Capstone manages, Adlumin monitors authentication patterns that would reveal compromised developer credentials being used from unusual locations or at abnormal times. The credential theft capabilities of these packages mean attackers gain access to source code repositories, CI/CD pipelines, and cloud infrastructure through legitimate developer accounts.

Within one week, complete forensic analysis on any system that downloaded these packages. Extract and analyze memory dumps to identify injected code or suspicious process behavior. Review git commit histories for unauthorized changes, especially in CI/CD configuration files or dependency management files. Rotate all credentials stored on affected machines, including API tokens, SSH keys, cloud service accounts, and repository access tokens. The packages' ability to steal credentials from multiple sources means comprehensive credential rotation is essential for containing the breach.

Hardening npm Supply Chain and Developer Environments

Your immediate priority for preventing similar supply chain compromises is implementing npm two-factor authentication across all developer accounts. Enable 2FA through npm's account settings using either an authenticator app or hardware token - this single step blocks attackers from publishing malicious packages even with stolen credentials.

The broader npm ecosystem attacks described in the source - including @withgoogle/stitch-sdk stealing credentials from eight developer sources and the apintergrationpost package delivering the MYRA Linux RAT - demonstrate that package verification must extend beyond simple name checking.

Configure your CI/CD pipelines to enforce npm audit checks before any build proceeds. Set the audit level to moderate or higher using npm audit --audit-level=moderate in your pipeline scripts. This catches known vulnerabilities but won't identify novel attacks like the PostCSS impersonation campaign.

For deeper package vetting, implement these verification layers:

  • Pin exact package versions in package.json using npm config set save-exact true
  • Enforce lock file commits by adding npm ci instead of npm install to build processes
  • Deploy a private npm registry using Verdaccio or Sonatype Nexus to pre-screen packages
  • Configure .npmrc files to restrict registry access: registry=https://your-private-registry.com

The PolinRider operation's technique of injecting obfuscated JavaScript into configuration files across nearly 2,000 GitHub repositories shows attackers target the entire development pipeline. Your developer workstations need equivalent hardening to production systems.

Deploy endpoint detection and response (EDR) agents specifically configured to monitor development tools. Create detection rules for unusual process chains involving npm.exe, node.exe, and wscript.exe - the exact combination used in the PostCSS attack. SentinelOne in managed environments detects these process anomalies before malicious scripts establish persistence.

Remove local administrator privileges from developer accounts except during specific maintenance windows. Use Windows Application Control policies or AppLocker to allowlist only approved development tools. The gonex-AI/Understand-Anything attack that resolved commands from Tron blockchain addresses shows attackers exploit any execution path available.

Network segmentation becomes critical when packages like staticlayer are designed to run server-side and deliver payloads based on User-Agent strings. Place development environments in isolated VLANs with restricted access to production systems. Monitor east-west traffic between developer and production segments for unusual patterns.

Your code review process must treat dependency changes as security events. Require manual approval for any modification to package.json or lock files. The fake PR campaign with fabricated test evidence and payloads hidden in horizontal whitespace demonstrates that automated checks miss social engineering elements.

Train developers to verify package publishers beyond just package names. The abdrizak account published all three malicious PostCSS packages - checking publisher history would have revealed the suspicious pattern. Include supply chain attack scenarios in quarterly security training, using real examples like the BeaverTail downloader and InvisibleFerret backdoor deployment chain.

Prioritize these hardening steps based on your environment: If you process customer data, implement the private registry first. If you have distributed teams, focus on EDR deployment and network segmentation. The key is establishing multiple verification layers - no single control catches all supply chain variants.

What Organizations Must Do Now

Your organization faces a coordinated campaign where attackers publish malicious npm packages that masquerade as legitimate PostCSS development tools to infiltrate developer workstations and establish persistent backdoor access to enterprise networks.

The single action that matters: audit your npm package installations across all developer machines and CI/CD pipelines for any packages published by user "abdrizak" or containing references to domains nvidiadriver[.]net or IP address 95.216.92[.]207. Search through your package-lock.json files, yarn.lock files, and npm cache directories for these indicators. Check Windows registry keys and startup folders for persistence mechanisms established by settings.ps1 or update.vbs scripts. Review PowerShell execution logs for any curl.exe commands downloading ZIP archives from external servers during npm install operations.

The blockchain-based command infrastructure discovered in the Understand-Anything supply chain attack demonstrates that attackers now use Tron and BSC transaction hashes to encode second-stage payloads, making traditional network monitoring ineffective. Your security tools cannot detect commands hidden in public blockchain transactions. The PolinRider campaign's injection of obfuscated JavaScript into developer configuration files across nearly 2,000 GitHub repositories shows how North Korean threat actors systematically compromise development infrastructure to deliver BeaverTail and InvisibleFerret malware.

Development environments represent your organization's most privileged access points - they contain source code repositories, deployment credentials, API keys, and direct paths to production systems that bypass standard security controls.

Table of contents

Top hits