StepSecurity Details Malicious node-ipc Releases Targeting Developer Credentials

· Original article ↗

Summary

StepSecurity reports that node-ipc versions 9.1.6, 9.2.3 and 12.0.1 published May 14, 2026, contain an obfuscated CommonJS payload that harvests developer credentials and exfiltrates them over HTTPS and DNS.

Key points

  • StepSecurity reports that account atiertant published node-ipc versions 9.1.6, 9.2.3 and 12.0.1 on May 14, 2026, with the same obfuscated payload in each.
  • The payload runs when the CommonJS bundle is loaded; the article says there are no lifecycle hooks and the ESM bundle is untouched.
  • The 12.0.1 payload has a hash-based module-path targeting check; the article says the 9.x payload lacks this gate.
  • The payload searches more than 90 categories of files and environment data for credentials and other secrets, then archives collected data.
  • Reported exfiltration methods include HTTPS and DNS TXT queries sent directly to the C2 IP; the C2 domain is sh[.]azurestaticprovider[.]net.
  • The article identifies 9.2.1 and 12.0.0 as last known-clean releases and advises affected users to rotate accessible secrets and investigate relevant systems and network logs.

Article Details

Attack Vectors
  • The malicious versions were published to npm under the maintainer account atiertant, which had no prior publish history for node-ipc. The article says it is unclear whether the account was compromised or added to enable the operation.
  • An obfuscated IIFE was appended to node-ipc.cjs and executes when the CommonJS package is loaded with require('node-ipc'); the package has no install-time lifecycle hooks, and its ESM entry point is untouched.
  • Versions 9.1.6 and 9.2.3 reportedly run the payload without a targeting gate; version 12.0.1 checks a SHA-256 hash of the module path before proceeding.
  • The payload spawns a detached process, enumerates the system and environment, and reads files matching patterns for credentials, keys, tokens, configuration, and shell history.
  • Collected data is assembled into a TAR archive, gzip-compressed, and exfiltrated through HTTPS POSTs and DNS TXT queries sent directly to the attacker’s server.
Defensive Notes
  • Treat systems that loaded [email protected], [email protected], or [email protected] as compromised; rotate credentials and secrets accessible in those environments.
  • Pin to a known-clean release and regenerate lockfiles; the article recommends [email protected] for 9.x users and [email protected] for 12.x users.
  • Check dependency trees and lockfiles for the three affected versions, including transitive dependencies and CI/CD installations after 2026-05-14.
  • Investigate connections to sh.azurestaticprovider[.]net and 37.16.75.69, including outbound UDP/53 traffic; the article also recommends reviewing cloud audit logs and workflow activity.
  • Check for $TMPDIR/nt-* staging directories and processes with the __ntw=1 environment marker; preserve relevant evidence for forensics.
  • Use egress allowlists and DNS egress controls to block unexpected destinations, including direct DNS traffic to 37.16.75.69.

Indicators of compromise

TypeIndicatorContext
DOMAINsh[.]azurestaticprovider[.]netAttacker-controlled C2 domain used for HTTPS exfiltration and resolution of the C2 server.
IPV437[.]16[.]75[.]69C2 server IP used for HTTPS exfiltration and as the direct DNS TXT exfiltration sink.
MD59672e9fb93a457f1d359511b4e53490dMD5 hash of the injected obfuscated IIFE block in the compromised package.
SHA158ae7338960ef525d7c655023d7c81e3ddb283d6SHA-1 hash of the malicious [email protected] npm tarball.
SHA1ab7388363936bf527afd4173b5728c7cdbdd01abSHA-1 hash of the compromised node-ipc.cjs payload file, identical across the three affected versions.
SHA1f5974a9774a22a863728b960543f68e7009099efSHA-1 hash of the malicious [email protected] npm tarball.
SHA1fe5d107b9d285327af579259a32977c4f475fa26SHA-1 hash of the malicious [email protected] npm tarball.
SHA256449e4265979b5fdb2d3446c021af437e815debd66de7da2fe54f1ad93cbcc75eSHA-256 hash of the malicious [email protected] npm tarball.
SHA25678a82d93b4f580835f5823b85a3d9ee1f03a15ee6f0e01b4eac86252a7002981SHA-256 hash of the malicious [email protected] npm tarball.
SHA25696097e0612d9575cb133021017fb1a5c68a03b60f9f3d24ebdc0e628d9034144SHA-256 hash of the compromised node-ipc.cjs payload file, identical across the three affected versions.
SHA256b2001dc4e13d0244f96e70258346700109907b90e1d0b09522778829dcd5e4cfSHA-256 hash of the injected obfuscated IIFE block in the compromised package.
SHA256c2f4dc64aec4631540a568e88932b61daebbfb7e8281b812fa01b7215f9be9eaSHA-256 hash of the malicious [email protected] npm tarball.

MITRE ATT&CK

T1005 · Data from Local SystemThe payload collects files and environment data from the compromised machine, including credentials and shell history.T1027 · Obfuscated Files or InformationThe payload uses an obfuscated string table, control-flow flattening, dead code, and custom base-16 encoding.T1036.005 · Match Legitimate Resource Name or LocationThe C2 domain sh.azurestaticprovider.net is crafted to resemble Azure service infrastructure.T1041 · Exfiltration Over C2 ChannelThe payload sends the collected archive to its C2 server in chunked HTTPS POST requests.T1048.003 · Exfiltration Over Unencrypted Non-C2 ProtocolThe payload hex-encodes archive chunks into DNS TXT queries for a separate exfiltration channel.T1059.004 · Unix ShellThe payload uses execSync to run uname -a for system information collection.T1059.007 · JavaScriptThe obfuscated JavaScript payload executes in Node.js when the compromised CommonJS module is loaded.T1071.004 · DNSThe payload sends DNS TXT queries directly to the C2 IP as a second communication channel.T1074.001 · Local Data StagingThe payload stages collected data under a $TMPDIR/nt-<PID>/ directory before exfiltration.T1082 · System Information DiscoveryThe payload collects OS information with uname -a and includes os.release() in its system fingerprint.T1083 · File and Directory DiscoveryThe payload resolves file patterns with statSync and readdirSync before reading matching files.T1195.002 · Compromise Software Supply ChainMalicious node-ipc versions were published to npm through a maintainer account with no prior publish history for the package.T1552.001 · Credentials In FilesThe payload searches and reads local credential files, keys, tokens, and configuration files.T1560.002 · Archive via LibraryThe payload builds a TAR archive and compresses it with zlib.gzipSync before sending it.

Vendors

Products

Tools

Related Articles