mal-2026-6066
Vulnerability from ossf_malicious_packages
-= Per source details. Do not edit below this line.=-
Source: amazon-inspector (b263413912feb72882ee0b52e7025c636ed98472ba90e6db4714b3b111b4e2e8)
The package is advertised as an SVG sanitizer but exposes an undocumented getPlugin() export whose returned function fetches JSON from https://www.jsonkeeper.com/b/3P9BF and passes the response's model field directly to eval(). jsonkeeper.com is an anonymous, mutable paste host with no pinning, hash, or signature — whoever controls that paste can execute arbitrary JavaScript in the consumer's Node.js process whenever the returned function is invoked. The malicious block in index.js is appended below a plausible SVG sanitizer/minifier implementation that serves as cover, and both the HTTP error branch and the eval try/catch are empty so failures are silently swallowed. This is a classic dropper pattern: benign cover code, undocumented export, fetch-and-eval from a mutable third-party paste, concealment of errors. Any consumer who imports this package and calls getPlugin() grants the paste operator full RCE on the importer's host.
{
"affected": [
{
"database_specific": {
"cwes": [
{
"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"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
],
"indicators": {
"evidence_files": [
{
"path": "index.js",
"sha256": "3a0e1400a7ac8e8b984beef2f330af7a144b04723016ef07681ac0294a725444",
"tlsh": "767111a8999b7095d6b1e3e447135015f559d1672208c3d4b6acc6983f7172c90f3eec"
}
],
"package_integrity": [
{
"filename": "quirky-token-1.0.2.tgz",
"hashes": {
"sha1": "402b1e1eca1c2790ed79caa90141b32ed2eeb2b8",
"sha512_sri": "sha512-7R5LlyUax8IBX0LEMn4UjgWqW5Srw0deTsAp4FtxxWFJaW05kgArzKsVlbLdH/zTAnC9UwdQz2wDwg1MYHU5Fg=="
}
}
]
}
},
"package": {
"ecosystem": "npm",
"name": "quirky-token"
},
"versions": [
"1.0.2",
"1.0.1",
"1.0.0"
]
}
],
"credits": [
{
"contact": [
"inspector-research@amazon.com"
],
"name": "Amazon Inspector",
"type": "FINDER"
}
],
"database_specific": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-006904",
"import_time": "2026-06-17T17:32:18.503990157Z",
"modified_time": "2026-06-17T16:37:40Z",
"sha256": "b263413912feb72882ee0b52e7025c636ed98472ba90e6db4714b3b111b4e2e8",
"source": "amazon-inspector",
"versions": [
"1.0.2"
]
},
{
"id": "IN-MAL-2026-007030",
"import_time": "2026-06-18T19:20:03.64521711Z",
"modified_time": "2026-06-18T19:11:57Z",
"sha256": "a414b00c83b6fd328d241e0e54f8289cb894be1907656b79df3c2ab6f2bf8537",
"source": "amazon-inspector",
"versions": [
"1.0.1"
]
},
{
"id": "IN-MAL-2026-007029",
"import_time": "2026-06-18T19:20:03.492793327Z",
"modified_time": "2026-06-18T19:11:55Z",
"sha256": "bacc77e746838c6cb40f40c42cb4bea12f0789f71055c891ceebf7a5e4ad2b5c",
"source": "amazon-inspector",
"versions": [
"1.0.0"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (b263413912feb72882ee0b52e7025c636ed98472ba90e6db4714b3b111b4e2e8)\nThe package is advertised as an SVG sanitizer but exposes an undocumented getPlugin() export whose returned function fetches JSON from https://www.jsonkeeper.com/b/3P9BF and passes the response\u0027s `model` field directly to eval(). jsonkeeper.com is an anonymous, mutable paste host with no pinning, hash, or signature \u2014 whoever controls that paste can execute arbitrary JavaScript in the consumer\u0027s Node.js process whenever the returned function is invoked. The malicious block in index.js is appended below a plausible SVG sanitizer/minifier implementation that serves as cover, and both the HTTP error branch and the eval try/catch are empty so failures are silently swallowed. This is a classic dropper pattern: benign cover code, undocumented export, fetch-and-eval from a mutable third-party paste, concealment of errors. Any consumer who imports this package and calls getPlugin() grants the paste operator full RCE on the importer\u0027s host.\n",
"id": "MAL-2026-6066",
"modified": "2026-06-18T19:21:58Z",
"published": "2026-06-17T16:37:40Z",
"references": [
{
"type": "PACKAGE",
"url": "https://www.npmjs.com/package/quirky-token/v/1.0.2"
},
{
"type": "PACKAGE",
"url": "https://www.npmjs.com/package/quirky-token/v/1.0.1"
},
{
"type": "PACKAGE",
"url": "https://www.npmjs.com/package/quirky-token/v/1.0.0"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in quirky-token (npm)"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.