personio-pipeline-projen presents itself as an authorized dependency-confusion proof-of-concept; the evidence does not identify a copied public package. Its preinstall hook runs on install with node canary.js. The dependency-confusion probe encodes the installing machine's hostname and username, present CI-variable names, and root project and lifecycle identifiers in a DNS label under db2su65ptuma8gfn6ing8e7dx7wp55zit.oast.fun, and sends an HTTPS GET to hrcv3zo9m3z70yr91ssdz669c0ir6ju8.oastify.com. The npm account reaperhackbot256f published it on 2026-10-07 (UTC).
-= Per source details. Do not edit below this line.=-
personio-pipeline-projen is an unscoped package on the public npm registry whose name mirrors an internal 'personio-*' dependency, positioning it to be resolved into Personio builds via dependency confusion. The package.json declares a preinstall hook node canary.js. On install, canary.js collects the machine hostname, OS username, the names of CI-related environment variables present on the host, and the installing project's name, and transmits them out-of-band via a DNS lookup to a subdomain of oast.fun (Interactsh collector) and an HTTPS GET to a subdomain of oastify.com (Burp Collaborator). The beacon fires unconditionally and before any installer consent. The README frames the package as authorized research, but the on-install behavior and name-collision shape are identical to a dependency-confusion attack: installer host and user identifiers leave the machine to a third-party collector on every install.
{
"iocs": {
"domains": [
"db2su65ptuma8gfn6ing8e7dx7wp55zit.oast.fun",
"hrcv3zo9m3z70yr91ssdz669c0ir6ju8.oastify.com"
],
"files": [
{
"digests": {
"sha256": "9047c11dc81dda0e8120f6777cb88678eaa0d7c995adb8d069731ab6b85f9a1e"
},
"note": "preinstall script: node canary.js",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE"
},
{
"digests": {
"sha256": "88fdfbfbc5982045f7fdc7a4f6097031b64689d1003c1a592156f37921db63f6"
},
"note": "Executed by the preinstall script of personio-pipeline-projen@1.171.31.",
"paths": [
"canary.js"
],
"source": "PACKAGE_ARCHIVE"
}
],
"urls": [
"https://hrcv3zo9m3z70yr91ssdz669c0ir6ju8.oastify.com/h"
]
},
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021124",
"import_time": "2026-10-08T03:50:29.463804527Z",
"modified_time": "2026-10-08T03:39:34Z",
"sha256": "9edcf2a339a16ea7096c68d06ec14250f3735eb3eb608f07bb2fe0004f8b9423",
"source": "amazon-inspector",
"versions": [
"1.171.31"
]
}
]
}[
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
]
{
"evidence_files": [
{
"path": "canary.js",
"sha256": "88fdfbfbc5982045f7fdc7a4f6097031b64689d1003c1a592156f37921db63f6",
"tlsh": "242179bf8368565025e0b6f0118f1025e6abf41767c67ad1789dc3655e517380353cfd"
},
{
"path": "package.json",
"sha256": "9047c11dc81dda0e8120f6777cb88678eaa0d7c995adb8d069731ab6b85f9a1e",
"tlsh": "53e0ca148f0055231ce455b508f5764210304c475f1d6e39f25b8048470db9317fb357"
}
],
"package_integrity": [
{
"filename": "personio-pipeline-projen-1.171.31.tgz",
"hashes": {
"sha1": "77e63fe2acaf37ccfc33160bcee2801aac68012b",
"sha512_sri": "sha512-GBQhBYyBDlBPTFr73hw4pN+iMRIy8KCROB5KTM0ZZEMPyNFvSQeug05zrAmYnLRdrSI4aexcnDJtCnna/bq5YA=="
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/personio-pipeline-projen/MAL-2026-17642.json"