Malicious code in personio-pipeline-projen (npm)
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.=-_ ## Source: amazon-inspector (9edcf2a339a16ea7096c68d06ec14250f3735eb3eb608f07bb2fe0004f8b9423) 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-col
- Products
- personio-pipeline-projen
- Affected versions
- 1.171.31
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:58 UTC · Revision 1
Source evidence
Malicious code in personio-pipeline-projen (npm)
core-osv · Original sourcePublished 7 Oct 2026, 04:52 UTC
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.=-_ ## Source: amazon-inspector (9edcf2a339a16ea7096c68d06ec14250f3735eb3eb608f07bb2fe0004f8b9423) 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-col
osv:MAL-2026-17642
personio-pipeline-projen
Fixed versions: Not specified
Complete source record
{
"id": "66d6839534a252340ee20c313c72d6b4799d07af6682c1e5037c85e36fca069e",
"url": "https://osv.dev/vulnerability/MAL-2026-17642",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in personio-pipeline-projen (npm)",
"summary": "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.=-_ ## Source: amazon-inspector (9edcf2a339a16ea7096c68d06ec14250f3735eb3eb608f07bb2fe0004f8b9423) 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-col",
"evidence": "osv:MAL-2026-17642",
"products": [
{
"name": {
"value": "personio-pipeline-projen",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "1.171.31",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-17642",
"aliases": [
"MAL-2026-17642"
],
"affected": [
{
"package": {
"name": "personio-pipeline-projen",
"purl": "pkg:npm/personio-pipeline-projen",
"ecosystem": "npm"
},
"versions": [
"1.171.31"
],
"database_specific": {
"cwes": [
{
"name": "Embedded Malicious Code",
"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."
}
],
"source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/personio-pipeline-projen/MAL-2026-17642.json",
"indicators": {
"evidence_files": [
{
"path": "canary.js",
"tlsh": "242179bf8368565025e0b6f0118f1025e6abf41767c67ad1789dc3655e517380353cfd",
"sha256": "88fdfbfbc5982045f7fdc7a4f6097031b64689d1003c1a592156f37921db63f6"
},
{
"path": "package.json",
"tlsh": "53e0ca148f0055231ce455b508f5764210304c475f1d6e39f25b8048470db9317fb357",
"sha256": "9047c11dc81dda0e8120f6777cb88678eaa0d7c995adb8d069731ab6b85f9a1e"
}
],
"package_integrity": [
{
"hashes": {
"sha1": "77e63fe2acaf37ccfc33160bcee2801aac68012b",
"sha512_sri": "sha512-GBQhBYyBDlBPTFr73hw4pN+iMRIy8KCROB5KTM0ZZEMPyNFvSQeug05zrAmYnLRdrSI4aexcnDJtCnna/bq5YA=="
},
"filename": "personio-pipeline-projen-1.171.31.tgz"
}
]
}
}
}
],
"modified": "2026-10-08T04:00:04.249068782Z",
"provider": "osv",
"references": [
"https://www.npmjs.com/package/personio-pipeline-projen",
"https://www.npmjs.com/package/personio-pipeline-projen/v/1.171.31"
],
"provider_metadata": {
"iocs": {
"urls": [
"https://hrcv3zo9m3z70yr91ssdz669c0ir6ju8.oastify.com/h"
],
"files": [
{
"note": "preinstall script: node canary.js",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE",
"digests": {
"sha256": "9047c11dc81dda0e8120f6777cb88678eaa0d7c995adb8d069731ab6b85f9a1e"
}
},
{
"note": "Executed by the preinstall script of personio-pipeline-projen@1.171.31.",
"paths": [
"canary.js"
],
"source": "PACKAGE_ARCHIVE",
"digests": {
"sha256": "88fdfbfbc5982045f7fdc7a4f6097031b64689d1003c1a592156f37921db63f6"
}
}
],
"domains": [
"db2su65ptuma8gfn6ing8e7dx7wp55zit.oast.fun",
"hrcv3zo9m3z70yr91ssdz669c0ir6ju8.oastify.com"
]
},
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021124",
"sha256": "9edcf2a339a16ea7096c68d06ec14250f3735eb3eb608f07bb2fe0004f8b9423",
"source": "amazon-inspector",
"versions": [
"1.171.31"
],
"import_time": "2026-10-08T03:50:29.463804527Z",
"modified_time": "2026-10-08T03:39:34Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 98430,
"published_at": "2026-10-07T04:52:26+00:00"
}