mal-2026-14345
Vulnerability from ossf_malicious_packages
-= Per source details. Do not edit below this line.=-
Source: amazon-inspector (0e94450f5541b39d8310a8b640dee027b0970db6e7cf724352726d49393bfb77)
The package advertises itself as an Express session middleware but on module load unconditionally invokes an initPlugin() routine in index.js that performs an HTTPS fetch to https://api.jsonbin.io/v3/b/6a4f5816f5f4af5e29762c92, parses the response, extracts the record.cerookie field, and passes the resulting string to Function.constructor with require bound as an argument, executing attacker-controlled JavaScript in the installer's Node.js process. The remote document is mutable and controlled by whoever owns that jsonbin bin, so the code executed on any host that requires this module can be changed at any time. The file is prefaced with a '/! normalize-path (ES6 safe version) /' header and ships an unused normalizePath helper alongside the loader, presenting a cover story unrelated to the actual behavior.
- CWE-506 - The product contains code that appears to be malicious in nature.
{
"affected": [
{
"database_specific": {
"cwes": [
{
"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": "d5fb9d5f33e208b9ba37dc361cfc2dbf51a2c64ed0c5a890c95bd2da587a0cca",
"tlsh": "4a41e1d924fa6115c1a3e1810e8f8409f22be1133359dac5b98c53546fd07b8a7f2b8a"
}
],
"package_integrity": [
{
"filename": "express-session-handler-2.3.3.tgz",
"hashes": {
"sha1": "d9baf7f930c9aeffa22dc99ccd07feed6d3fe308",
"sha512_sri": "sha512-WpGlAwr+QSerdM3G4sP7UzGUgGoIKvADToUf4pCQ9wHWngCiK+2bGSQHH7COcp/LlOM1o2+PGatORN92ARXRJQ=="
}
}
]
}
},
"package": {
"ecosystem": "npm",
"name": "express-session-handler"
},
"versions": [
"2.3.3"
]
}
],
"credits": [
{
"contact": [
"inspector-research@amazon.com"
],
"name": "Amazon Inspector",
"type": "FINDER"
}
],
"database_specific": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-018494",
"import_time": "2026-08-21T04:19:06.268270265Z",
"modified_time": "2026-08-21T03:56:39Z",
"sha256": "0e94450f5541b39d8310a8b640dee027b0970db6e7cf724352726d49393bfb77",
"source": "amazon-inspector",
"versions": [
"2.3.3"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (0e94450f5541b39d8310a8b640dee027b0970db6e7cf724352726d49393bfb77)\nThe package advertises itself as an Express session middleware but on module load unconditionally invokes an initPlugin() routine in index.js that performs an HTTPS fetch to https://api.jsonbin.io/v3/b/6a4f5816f5f4af5e29762c92, parses the response, extracts the record.cerookie field, and passes the resulting string to Function.constructor with require bound as an argument, executing attacker-controlled JavaScript in the installer\u0027s Node.js process. The remote document is mutable and controlled by whoever owns that jsonbin bin, so the code executed on any host that requires this module can be changed at any time. The file is prefaced with a \u0027/*! normalize-path (ES6 safe version) */\u0027 header and ships an unused normalizePath helper alongside the loader, presenting a cover story unrelated to the actual behavior.\n",
"id": "MAL-2026-14345",
"modified": "2026-08-21T03:56:39Z",
"published": "2026-08-21T03:56:39Z",
"references": [
{
"type": "PACKAGE",
"url": "https://www.npmjs.com/package/express-session-handler/v/2.3.3"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in express-session-handler (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.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.