{"id":"MAL-2026-18498","summary":"Malicious code in @goparrot-dashboard/franchise-directory (npm)","details":"@goparrot-dashboard/franchise-directory is a dependency-confusion probe: it takes a name in a `@goparrot-dashboard` scope that its publisher created on npm, next to GoParrot's public `@goparrot` scope, so a build that resolves that scope from npm gets it instead of a private package of the same name. Version 0.0.1 has no install scripts, and its `index.js` only prints a \"[rootxravi-poc-security] @goparrot-dashboard/franchise-directory\" marker when loaded. The npm account devtest91001 published it on 2026-11-01 with 24 other packages in `@goparrot-dashboard` and `@goparrot-dashboard-api`, including @goparrot-dashboard/app, whose 0.0.2 sends the hostname, user and working directory to an interactsh callback host (`iuczektmwpudhwqnsbkgc6m8nx2dgn5vc.oast.fun`) from a preinstall script.","modified":"2026-11-03T05:00:11.453597543Z","published":"2026-11-02T03:53:39Z","database_specific":{"iocs":{"files":[{"paths":["package.json"],"source":"PACKAGE_ARCHIVE","digests":{"sha256":"13773b6fb8a04cfc94d9177e19c1ae2614162c2207f492cfeb6085772062ba7c"},"note":"Malicious package manifest."}]}},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/@goparrot-dashboard/franchise-directory"}],"affected":[{"package":{"name":"@goparrot-dashboard/franchise-directory","ecosystem":"npm","purl":"pkg:npm/%40goparrot-dashboard/franchise-directory"},"versions":["0.0.1"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@goparrot-dashboard/franchise-directory/MAL-2026-18498.json","cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}]}}],"schema_version":"1.9.2","credits":[{"name":"InvisiRisk, Inc.","contact":["https://www.invisirisk.com","mailto:research@invisirisk.com"],"type":"FINDER"}]}