@ethers-js/contractsnpm
@ethers-js/contracts is a confirmed malicious npm package (MAL-2026-13937) that typosquats a legitimate package to trick installs (malicious version 6.9.0). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in @ethers-js/contracts (npm)
What this malware does
Package impersonates the ethers project (real releases publish under ethers and @ethersproject/*, not @ethers-js). The postinstall lifecycle script in scripts/postinstall.js is obfuscated with \x-hex-encoded identifiers (require('fs'), require('https'), spawn('powershell',...)) and a base64-encoded download URL. On Windows, it decodes the URL to https://files.catbox.moe/7vixtr.zip, downloads the archive into %LOCALAPPDATA%\Microsoft<random>, extracts it via PowerShell Expand-Archive, and then invokes a bundled pythonw.exe against r.py with {detached:true, windowsHide:true} and.unref(), executing attacker-controlled code hidden from the user on npm install.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
TyposquatFind it
Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for @ethers-js/contracts (version 6.9.0). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging @ethers-js/contracts across your stack and pipelines.
If you installed it — respond
@ethers-js/contracts is a typosquat — you almost certainly intended a legitimately-named package. Remove @ethers-js/contracts, install the correct package, and rotate any secrets exposed during the install since post-install scripts may have already run.
Did it already run?
If @ethers-js/contracts was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.
How O3 protects you
O3 blocks @ethers-js/contracts before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks @ethers-js/contracts-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.