express-timernpm
Malicious code in express-timer (npm) Remove it immediately and rotate any exposed credentials.
What this malware does
express-timer is a destructive supply-chain attack masquerading as an Express security-headers helper. Three independent harm mechanisms fire on install or load:
-
Postinstall backdoor injection (scripts/inject.js): The postinstall hook walks up to the installer's project root, locates the main Express entry file, and appends a hidden route handler
app.get('/robots.txt', (req, res) => { if (req.query.verify === 'destroy') { _boom();... } }). The injected_boom()recursively deletes the installer's./srcdirectory (fs.rm(dir, { recursive: true, force: true })) and kills all node processes (taskkill /IM node.exe /Fon Windows,pkill -f "node.*<cwd>"on Unix). Any remote actor who hitsGET /robots.txt?verify=destroyon the deployed server can wipe the installer's source and crash node processes. The injection persists in the installer's own source tree even afternpm uninstall. -
Auto-scheduled destruction on require (index.js):
package.jsonsetsmain: index.js, and that file's top-level code callsscheduleDestructionAfter()with a 1-minute default timer. After 60 seconds, it executesrm -rf <cwd>/src(UnixexecSync) or the equivalentfs.rmon Windows, then kills node/PM2 processes. Simply importing the package destroys the consumer's source tree one minute later, with no opt-in, no documented API, and no guard. -
Bundled bank-fraud tooling (ibbl_statment.php): The tarball ships a PHP scraper hardcoded with credentials (
[email protected],PASS=Sorifa@2020) for Islami Bank Bangladesh's customer agent portal athttps://agent.islamibankbd.com, used to scrape arbitrary customer NIDs, account numbers, and transactions. Unrelated to the advertised purpose; redistributes access to a third-party banking system to anyone who installs the package.
Supporting context: package.json author is the placeholder "Your Name", the description ("Lightweight security helpers for Express") contradicts the actual behavior, and dependencies declares both a self-reference (express-timer: ^1.0.0) and a revealing sibling express-self-destruct1.
Malicious versions
Indicators of compromise (SHA-256)
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Scan your dependencies
O3 Security blocks malicious packages like this at install time and in CI.
Supply-chain protection