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.
- 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
- 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.
Related incidents
- 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 - 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 - 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 - 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