Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. piscina
  4. ›
  5. CVE-2026-55388

CVE-2026-55388: piscina: Prototype Pollution Gadget → RCE via inherited options.filename

June 18, 2026

piscina’s constructor and run() paths read the filename option via plain member access:

// dist/index.js line 92 (constructor)
const filename = options.filename
? (0, common_1.maybeFileURLToPath)(options.filename)
: null;
this.options = { ...kDefaultOptions, ...options, filename, maxQueue: 0 };

// dist/index.js line 616 (run())
run(task, options = kDefaultRunOptions) {
if (options === null || typeof options !== 'object') {
return Promise.reject(new TypeError('options must be an object'));
}
const { transferList, filename, name, signal } = options;

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 — by any of the well-documented PP-source CVEs (lodash<4.17.13, qs<6.10.3, set-value<4.1.0, minimist<1.2.6, deepmerge<4.2.2, and others) — the inherited value flows to worker_threads.Worker import and the attacker’s .mjs runs in the worker.

Subtlety: calling pool.run(task) with no second arg uses kDefaultRunOptions which has filename: null as an OWN property — that path DOES NOT fire. The vulnerable shape is when the caller passes their own options object (commonly {signal: ac.signal} for abort support, {name: ...} for task labelling, etc.). These caller-built options objects inherit from Object.prototype unless the caller explicitly uses Object.create(null).

References

  • github.com/advisories/GHSA-x9g3-xrwr-cwfg
  • github.com/piscinajs/piscina/security/advisories/GHSA-x9g3-xrwr-cwfg
  • nvd.nist.gov/vuln/detail/CVE-2026-55388

Code Behaviors & Features

Detect and mitigate CVE-2026-55388 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 4.9.3, all versions starting from 5.0.0-alpha.0 before 5.2.0, all versions starting from 6.0.0-rc.1 before 6.0.0-rc.2

Fixed versions

  • 4.9.3
  • 5.2.0
  • 6.0.0-rc.2

Solution

Upgrade to versions 4.9.3, 5.2.0, 6.0.0-rc.2 or above.

Impact 8.1 HIGH

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Learn more about CVSS

Weakness

  • CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
  • CWE-94: Improper Control of Generation of Code ('Code Injection')

Source file

npm/piscina/CVE-2026-55388.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Tue, 23 Jun 2026 12:24:15 +0000.