{"schema_version":"1.9.0","id":"MAL-2026-18252","published":"2026-10-25T06:26:03Z","modified":"2026-10-25T15:30:04.566092893Z","summary":"Malicious code in @eforms/forms-api (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (e58d3810346fb211fd7ed78e8df88c774a79bb079537e10cd30baa26e5ef4740)\nThe npm package @eforms/forms-api@99.0.0 is a scoped-name dependency-confusion lure with an inflated version number and an empty index.js stub. Its only functionality is a preinstall lifecycle script (preinstall.js) that runs automatically on `npm install`. The script reads os.hostname(), os.userInfo() (username and uid), process.cwd(), process.platform, process.arch, process.version, the CI environment flag, and other host identifiers, and transmits them out-of-band to two hardcoded attacker-controlled subdomains of oastify.com (Interactsh / Burp Collaborator OOB infrastructure) — specifically rpkfvtsptfrhcgbe62qg11ywjnpij6ma1cfpke.oastify.com and f6mk7lyjsuk3u1t49ypp9q2jbah15rtg.oastify.com — via both a DNS lookup of a data-bearing label and an HTTPS GET whose query string carries the collected fields. The combination of a scoped @eforms/* name, implausibly high version (99.0.0 to win internal-vs-public resolution races), empty library surface, and preinstall OOB beacon is the standard shape of an internal-scope dependency-confusion attack. Any build that resolves this scope from the public registry ships internal host identity to the attacker's OOB collector on install.\n\n## Source: ossf-package-analysis (cbe6ac9c18c859c04807fb2bd866f2eda2b70a4aa2583096b7138ab2adc90540)\nThe OpenSSF Package Analysis project identified '@eforms/forms-api' @ 2.0.0-SNAPSHOT (npm) as malicious.\n\nIt is considered malicious because:\n\n- The package communicates with a domain associated with malicious activity.\n","affected":[{"package":{"name":"@eforms/forms-api","ecosystem":"npm","purl":"pkg:npm/%40eforms/forms-api"},"versions":["2.0.0-SNAPSHOT","99.0.0"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"preinstall.js","sha256":"3393dd07c644fc8470cdd6c86ede09d1e292629d45c368bedd0a3fac15c58f05","tlsh":"ca51729ea1f2b07041a170e0652f125a68baf470024dd698e85dd1947ff403c6373afe"},{"path":"package.json","sha256":"02c8444f81990d34f288283d95424293281d8858baec1687b79f77907d5a2c35","tlsh":"f9f04130ce60e2330ee802d15eda4402a198dc1f50249c0ed7cb520ca69f69b03fb79d"}],"package_integrity":[{"filename":"forms-api-99.0.0.tgz","hashes":{"sha1":"c4c97f2c1cde51050dbabbd7ad76d83377eda679","sha512_sri":"sha512-YrLaTm3kD07av7ynAFmMecrSd+xYa0IcOBDocbo8M6hJQkv4d5e/D/c0hXw8Z6yP3LjnbBJC8MIpXwLNj7NDEw=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@eforms/forms-api/MAL-2026-18252.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/@eforms/forms-api/v/99.0.0"}],"database_specific":{"malicious-packages-origins":[{"import_time":"2026-10-25T06:27:19.498726104Z","modified_time":"2026-10-25T06:26:03Z","sha256":"cbe6ac9c18c859c04807fb2bd866f2eda2b70a4aa2583096b7138ab2adc90540","source":"ossf-package-analysis","versions":["2.0.0-SNAPSHOT"]},{"id":"IN-MAL-2026-021707","import_time":"2026-10-25T15:15:15.637414749Z","modified_time":"2026-10-25T15:10:55Z","sha256":"e58d3810346fb211fd7ed78e8df88c774a79bb079537e10cd30baa26e5ef4740","source":"amazon-inspector","versions":["99.0.0"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"OpenSSF: Package Analysis","contact":["https://github.com/ossf/package-analysis","https://openssf.slack.com/channels/package_analysis"],"type":"FINDER"}]}