CVE-2026-55388
Full vulnerability record from the local CVENow database.
Description
piscina is a node.js worker pool implementation. Prior to 6.0.0-rc.2, 5.2.0, and 4.9.3, piscina's constructor and run() paths read the filename option via plain member access. Both reads fall through the prototype chain when the caller's options object doesn't have filename as an own property. When Object.prototype.filename is polluted upstream the inherited value flows to worker_threads.Worker import and the attacker's .mjs runs in the worker. This vulnerability is fixed in 6.0.0-rc.2, 5.2.0, and 4.9.3.
Severity
HIGH
CVSS score
8.1
(v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-06-22 18:16:47.930000
Last modified
2026-10-25 23:10:00.167000
View original CVE JSON
{
"id": "CVE-2026-55388",
"sourceIdentifier": "[email protected]",
"published": "2026-06-22T18:16:47.930",
"lastModified": "2026-10-25T23:10:00.167",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "piscina is a node.js worker pool implementation. Prior to 6.0.0-rc.2, 5.2.0, and 4.9.3, piscina's constructor and run() paths read the filename option via plain member access. Both reads fall through the prototype chain when the caller's options object doesn't have filename as an own property. When Object.prototype.filename is polluted upstream the inherited value flows to worker_threads.Worker import and the attacker's .mjs runs in the worker. This vulnerability is fixed in 6.0.0-rc.2, 5.2.0, and 4.9.3."
},
{
"lang": "es",
"value": "piscina es una implementación de pool de workers de node.js. Antes de 6.0.0-rc.2, 5.2.0 y 4.9.3, las rutas del constructor y de run() de piscina leían la opción filename a través de acceso directo a miembros. Ambas lecturas caían a través de la cadena de prototipos cuando el objeto de opciones del llamador no tiene filename como una propiedad propia. Cuando Object.prototype.filename es contaminado aguas arriba, el valor heredado fluye a la importación de worker_threads.Worker y el .mjs del atacante se ejecuta en el worker. Esta vulnerabilidad está corregida en 6.0.0-rc.2, 5.2.0 y 4.9.3."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "piscinajs",
"product": "piscina",
"versions": [
{
"version": "< 4.9.3",
"status": "affected"
},
{
"version": ">= 5.0.0-alpha.0, < 5.2.0",
"status": "affected"
},
{
"version": ">= 6.0.0-rc.1, < 6.0.0-rc.2",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "HIGH",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 2.2,
"impactScore": 5.9
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-06-23T15:50:15.219533Z",
"id": "CVE-2026-55388",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-94"
},
{
"lang": "en",
"value": "CWE-1321"
}
]
}
],
"references": [
{
"url": "https://github.com/piscinajs/piscina/security/advisories/GHSA-x9g3-xrwr-cwfg",
"source": "[email protected]"
},
{
"url": "https://github.com/piscinajs/piscina/security/advisories/GHSA-x9g3-xrwr-cwfg",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}