Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in app-soda-layer (npm)

The npm package app-soda-layer contained malicious code in its postinstall hook that exfiltrated sensitive files, enumerated the filesystem, and injected SSH keys for persistent remote access. The package was identified by Amazon Inspector and credited to OpenSSF's malicious-packages repository.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or system that installed app-soda-layer via npm
Ecosystems
Attack vectors
Affected entities
  • app-soda-layernpm package with malicious postinstall hook

The npm package app-soda-layer was found to contain malicious code executed via a postinstall hook (test.js) that runs automatically on npm install. The malware performs multiple exfiltration and persistence activities.\n\nThe postinstall script searches the current working directory for sensitive files (id.json, config.toml, .env, env) and exfiltrates them to http://95.216.118.146:3000/api/v1, prefixed with the OS username. A second routine fetches attacker-controlled file patterns from http://95.216.118.146:3001/api/scan-patterns and recursively enumerates the user's home directory (Linux/macOS) or all logical drives via wmic/PowerShell (Windows), uploading matching files with metadata to http://95.216.118.146:3001/api/v1.\n\nFor persistence, the malware retrieves an SSH public key from http://95.216.118.146:3001/api/ssh-key, appends it to ~/.ssh/authorized_keys, and configures the firewall (sudo ufw enable; sudo ufw allow 22/tcp) to ensure SSH access remains available. Both the file-harvest scope and SSH key are dynamically supplied by the remote endpoint over plaintext HTTP.\n\nThe incident was detected by Amazon Inspector and credited to the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • app-soda-layer
IPs
  • 95.216.118.146

Remediation

  • Immediately uninstall app-soda-layer from all systems
  • Audit npm install logs to identify when the package was installed
  • Revoke or rotate any SSH keys in ~/.ssh/authorized_keys
  • Review firewall rules and disable any unauthorized SSH access
  • Scan systems for exfiltrated files (id.json, config.toml, .env, env) and check for unauthorized SSH connections
  • Change credentials for any services whose config files may have been exposed
  • Monitor the identified C2 IP addresses (95.216.118.146) for further activity
  • Use npm audit to check for other malicious packages

Sources

  1. GitHub Advisory GHSA-2q8x-gg6r-p5hg · GitHub Advisory Database

Cite this entry

"Malicious code in app-soda-layer (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 28, 2026; last updated July 28, 2026. https://supplychainattack.org/incident/malicious-code-in-app-soda-layer-npm-1lu2kn

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. activecritical

    Malware in @omniwatch-wick/cli

    Malware discovered in the npm package @omniwatch-wick/cli. Systems with this package installed are considered fully compromised and require immediate remediation.

    npmCompromised package
  2. activecritical

    Malware in chain-manager

    Malware discovered in the npm package chain-manager. Systems with this package installed or running are considered fully compromised and require immediate remediation.

    npmCompromised package
  3. containedcritical

    Malicious code in toll_free (npm)

    The npm package toll_free version 1.0.1 was identified as malicious by the OpenSSF Package Analysis project. The package executes commands associated with malicious behavior.

    npmCompromised package
  4. containedcritical

    Malicious code in blots (npm)

    The npm package 'blots' version 2.1.0 was identified by the OpenSSF Package Analysis project as containing malicious code that executes commands associated with malicious behavior. The package has been flagged in the OpenSSF malicious packages database.

    npmCompromised package