Malicious code in @dransay/api (npm)
@dransay/api@99.0.0 is a dependency-confusion probe claiming the internal `@dransay/*` namespace, not an identified public package. Its `preinstall` hook runs on npm install as `node beacon.js` and sends a DNS lookup and an HTTPS GET to `db3klhbi6i9hark1kegg174t38h33b6wt.oast.site`, using the package name in the request; npm account `0xamino_hunter` published it on 2026-10-08. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (e237d11d4a80279031cdf312f3c879913d5ce485a74538e52b64a03a4332da34) @dransay/api@99.0.0 is a dependency-confusion-shaped package (unscoped-sounding name with an implausibly high version 99.0.0 and publishConfig public) whose package.json declares a preinstall script `node beacon.js`. On every `npm install`, beacon.js performs a DNS lookup and HTTPS GET to a hardcoded Interactsh out-of-band collaborator host `db3klhbi6i9hark1kegg174t38h33b6wt.oast.site`, with the package name included in the DNS label and HTTP path. This causes the installer's source IP, resolver IP, install timestamp, and the fact that the internal package name resolved against the public npm registry to be transmitted to a third-party OOB server. The pattern is consistent with a dependency-confusion probe: a package name chosen to collide with a target organization's internal package is published to the public registry at a very high version so that a misconfigured internal resolver pulls the public copy, and the preinstall beacon then signals the at
- Products
- @dransay/api
- Affected versions
- 99.0.0
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 06:37 UTC · Revision 1
Source evidence
@dransay/api@99.0.0 is a dependency-confusion probe claiming the internal `@dransay/*` namespace, not an identified public package. Its `preinstall` hook runs on npm install as `node beacon.js` and sends a DNS lookup and an HTTPS GET to `db3klhbi6i9hark1kegg174t38h33b6wt.oast.site`, using the package name in the request; npm account `0xamino_hunter` published it on 2026-10-08. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (e237d11d4a80279031cdf312f3c879913d5ce485a74538e52b64a03a4332da34) @dransay/api@99.0.0 is a dependency-confusion-shaped package (unscoped-sounding name with an implausibly high version 99.0.0 and publishConfig public) whose package.json declares a preinstall script `node beacon.js`. On every `npm install`, beacon.js performs a DNS lookup and HTTPS GET to a hardcoded Interactsh out-of-band collaborator host `db3klhbi6i9hark1kegg174t38h33b6wt.oast.site`, with the package name included in the DNS label and HTTP path. This causes the installer's source IP, resolver IP, install timestamp, and the fact that the internal package name resolved against the public npm registry to be transmitted to a third-party OOB server. The pattern is consistent with a dependency-confusion probe: a package name chosen to collide with a target organization's internal package is published to the public registry at a very high version so that a misconfigured internal resolver pulls the public copy, and the preinstall beacon then signals the at
osv:MAL-2026-17805
@dransay/api
Fixed versions: Not specified
Complete source record
{
"id": "743533b2748cdaa6a662eafed3ceea0e2d99568a9df5bb2b376f3a25fada6570",
"url": "https://osv.dev/vulnerability/MAL-2026-17805",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in @dransay/api (npm)",
"summary": "@dransay/api@99.0.0 is a dependency-confusion probe claiming the internal `@dransay/*` namespace, not an identified public package. Its `preinstall` hook runs on npm install as `node beacon.js` and sends a DNS lookup and an HTTPS GET to `db3klhbi6i9hark1kegg174t38h33b6wt.oast.site`, using the package name in the request; npm account `0xamino_hunter` published it on 2026-10-08. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (e237d11d4a80279031cdf312f3c879913d5ce485a74538e52b64a03a4332da34) @dransay/api@99.0.0 is a dependency-confusion-shaped package (unscoped-sounding name with an implausibly high version 99.0.0 and publishConfig public) whose package.json declares a preinstall script `node beacon.js`. On every `npm install`, beacon.js performs a DNS lookup and HTTPS GET to a hardcoded Interactsh out-of-band collaborator host `db3klhbi6i9hark1kegg174t38h33b6wt.oast.site`, with the package name included in the DNS label and HTTP path. This causes the installer's source IP, resolver IP, install timestamp, and the fact that the internal package name resolved against the public npm registry to be transmitted to a third-party OOB server. The pattern is consistent with a dependency-confusion probe: a package name chosen to collide with a target organization's internal package is published to the public registry at a very high version so that a misconfigured internal resolver pulls the public copy, and the preinstall beacon then signals the at",
"evidence": "osv:MAL-2026-17805",
"products": [
{
"name": {
"value": "@dransay/api",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "99.0.0",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-17805",
"aliases": [
"MAL-2026-17805"
],
"affected": [
{
"package": {
"name": "@dransay/api",
"purl": "pkg:npm/%40dransay/api",
"ecosystem": "npm"
},
"versions": [
"99.0.0"
],
"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/@dransay/api/MAL-2026-17805.json",
"indicators": {
"evidence_files": [
{
"path": "beacon.js",
"tlsh": "891125ad5ae42b00b1e9f4a4988e01e94b73d1a8844946c4f1cec3ab6e5347d17674fb",
"sha256": "b7e8039e3a8505c17e49d442c934bb1981da2fd904d4e87eb04b51420a749421"
}
],
"package_integrity": [
{
"hashes": {
"sha1": "179268f42e2604acb96d91e4ebc8942909f1fd5f",
"sha512_sri": "sha512-pwoQJlSyHRkVGy3UEVPzJiyud1X32VUrvWyBw9FlQMG1VRGpdWS0+0VKprz1jOBvghESWu1J8S4Tj62LYG7Y8w=="
},
"filename": "api-99.0.0.tgz"
}
]
}
}
}
],
"modified": "2026-10-12T14:30:19.845804313Z",
"provider": "osv",
"references": [
"https://www.npmjs.com/package/@dransay/api",
"https://www.npmjs.com/package/@dransay/api/v/99.0.0"
],
"provider_metadata": {
"iocs": {
"urls": [
"https://db3klhbi6i9hark1kegg174t38h33b6wt.oast.site/api"
],
"files": [
{
"note": "preinstall script: node beacon.js",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE",
"digests": {
"sha256": "28fe27a21165ca507e56156aef763eaa5694e4648bc2330347869d4a46d2e517"
}
},
{
"note": "Executed by the preinstall script of @dransay/api@99.0.0.",
"paths": [
"beacon.js"
],
"source": "PACKAGE_ARCHIVE",
"digests": {
"sha256": "b7e8039e3a8505c17e49d442c934bb1981da2fd904d4e87eb04b51420a749421"
}
}
],
"domains": [
"db3klhbi6i9hark1kegg174t38h33b6wt.oast.site"
]
},
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021464",
"sha256": "e237d11d4a80279031cdf312f3c879913d5ce485a74538e52b64a03a4332da34",
"source": "amazon-inspector",
"versions": [
"99.0.0"
],
"import_time": "2026-10-12T14:26:36.289766715Z",
"modified_time": "2026-10-12T14:24:29Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 299962,
"published_at": "2026-10-08T07:58:05+00:00"
}