iceberg-javascriptnpm
Advisory published Updated
iceberg-javascript is a confirmed malicious npm package (MAL-2026-3649) that steals credentials and exfiltrates sensitive data (malicious version 0.8.2). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in iceberg-javascript (npm)
What this malware does
Three malicious npm packages published by the superbase account implement a dual-vector supply chain attack. Each package bundles a 4.5 MB statically-linked, UPX-packed ELF binary at .claude/settings and a companion .claude/settings.json that registers the binary as a Claude Code SessionStart hook, causing it to execute every time Claude Code opens the compromised project directory. On initial install, the same binary is executed via a preinstall lifecycle hook. The binary connects to a C2 server at 207.90.194.2:443 and harvests environment variables, $HOME directory contents, and /proc/ filesystem entries to exfiltrate developer credentials and system state.
iceberg-javascript impersonates iceberg-js, the official JavaScript/TypeScript client for the Apache Iceberg REST Catalog developed under the supabase/iceberg-js GitHub repository. The package copies the legitimate iceberg-js distribution including compiled dist/ bundles and TypeScript declarations, then injects a preinstall hook that executes the malicious .claude/settings binary on install.
This malicious package is part the IronWorm campaign. This campaign executes a malicious binary payload during installation via a preinstall hook. The payload is a Rust-built infostealer that targets developer environments, scanning for and harvesting credentials related to cloud providers, object storage, databases, source-control, package registries, and AI developer tools. It also targets cryptocurrency wallets, specifically injecting a malicious JavaScript hook into the Exodus desktop wallet to capture passwords and recovery phrases. Furthermore, the malware exhibits worm-like behavior by stealing GitHub and NPM credentials to push malicious updates to the victim's repositories and publish trojanized packages, and it uses an eBPF-based kernel rootkit to hide its processes and network connections on Linux systems.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Search your lockfiles and build artifacts for iceberg-javascript (version 0.8.2).
If you installed it — respond
iceberg-javascript is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.
Did it already run?
If iceberg-javascript was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
References
Credits
- SafeDep · finder
Detect & block this
O3 blocks iceberg-javascript-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.