@goparrot-dashboard/loyalty 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/loyalty" 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.
{
"iocs": {
"files": [
{
"digests": {
"sha256": "1fa99ee4c0b1c799829e800808143ab8c72ca3ffe38483fd8e2ff0d3287cbf4a"
},
"note": "Malicious package manifest.",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE"
}
]
}
}