-= Per source details. Do not edit below this line.=-
package.json declares a dependency whose key equals the package's own name (paper-password-input) and whose value is a bare HTTPS URL, https://repo.securityctrl.com/paper-password-input, rather than a registry version range. On npm install, npm fetches whatever bytes are served at that URL with no version pin and no integrity check, and executes any lifecycle scripts inside the fetched tarball. The shipped index.js is an inert stub, so the manifest itself is the entire published surface — whoever controls repo.securityctrl.com can deliver arbitrary code to every installer, and the self-named dependency shape is consistent with a dependency-confusion lure targeting an internal package name.
{
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-019103",
"modified_time": "2026-08-28T23:16:42Z",
"import_time": "2026-08-28T23:38:05.712817187Z",
"source": "amazon-inspector",
"sha256": "a97853ce25938b0cc295a798fa8c9ae8ab513126e70b93084785636a91bc7ec4",
"versions": [
"45.0.0"
]
}
]
}[
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
}
]
{
"package_integrity": [
{
"filename": "paper-password-input-45.0.0.tgz",
"hashes": {
"sha512_sri": "sha512-c7ZlPv2BnMY+/GA4clQ0OEPOO86bjvqmaRRYmdUkTJbsz8/gpYh4BdXvHxGfnsDP7uhxY7M1TR05JhZwoUadIg==",
"sha1": "d221ef48c889e3d74f026497da7ab5c8861a132c"
}
}
],
"evidence_files": [
{
"path": "package.json",
"tlsh": "d9e026308a14263701c559624879401372118f1f00443c0653e7535cd11f9f3adfe76e",
"sha256": "1f9e2591c5a9fea94306810378b4fb23b3cfa991749c5bbdf526a11687415d36"
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/paper-password-input/MAL-2026-15542.json"