o3formsnpm
Malicious code in o3forms (npm) Remove it immediately and rotate any exposed credentials.
What this malware does
The package name impersonates the OpenMRS O3 forms ecosystem (legitimate packages are published under the @openmrs/ scope). package.json declares an optionalDependency o3forms-utils resolved as github:core-modules-lab/o3forms-utils#76c1c55 — code fetched directly from GitHub, outside npm registry scanning. index.js (lines 1-4) wraps require('o3forms-utils') in a try/catch that silently swallows errors, so the off-registry payload executes on every consumer import with no visible failure if anything goes wrong. The package.json bin field maps 11 ubiquitous dev-tool names (webpack, vite, eslint, tsc, next, jest, prettier, nodemon, turbo, ts-node, webpack-cli) all to index.js, so any hoisted invocation of those commands (e.g. npx webpack) launches this package's loader and triggers the GitHub fetch+execute. Additional attacker-hygiene tells: version 99.1.99 (version-squat to outrank legitimate releases), config.unsafe-perm: true to keep root during npm scripts, and a placeholder OpenMRS Community Contributor author with no homepage. Installing or loading this package — or running any of the hijacked dev-tool commands in a project where it is hoisted — executes attacker-controlled code from a mutable GitHub commit.
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