OpenSSF/OSV advisory MAL-2026-4391 confirms this npm version as malicious. The package's package.json declares a postinstall hook ("postinstall": "node install.js") that runs install.js automatically on npm install. install.js requires fs, os, https, and child_process, reads environment variables and host metadata (process.env, process.platform, process.arch, os.tmpdir, fs.readFileSync), and issues an https.get to the hardcoded endpoint https://ahmedgad.com...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in @gad360/apothem (npm)
Details
The package's package.json declares a postinstall hook ("postinstall": "node install.js") that runs install.js automatically on npm install. install.js requires fs, os, https, and child_process, reads environment variables and host metadata (process.env, process.platform, process.arch, os.tmpdir, fs.readFileSync), and issues an https.get to the hardcoded endpoint https://ahmedgad.com. The combination of a hardcoded non-publisher destination with environment/system reads inside a lifecycle script is the canonical install-time exfiltration shape. The destination is unrelated to any documented vendor SDK or runtime CDN, and there is no version pinning, hash verification, or build-from-source justification for the network call.
Decision reason
OpenSSF Malicious Packages via OSV confirms @gad360/apothem@1.1.0 as malicious (MAL-2026-4391): Malicious code in @gad360/apothem (npm)