CVE-2026-102992: piscina: Prototype-pollution gadget in ThreadPool.options allows RCE via execArgv / loadBalancer / env
A prototype-pollution gadget in ThreadPool.options allows an attacker who can pollute Object.prototype to execute arbitrary code in Piscina worker threads, invoke arbitrary functions during task scheduling, or inject environment variables into workers. The root cause is that ThreadPool.options is created as a plain object inheriting from Object.prototype, so any option without an explicit default in kDefaultOptions can be supplied via the prototype chain.
References
- github.com/advisories/GHSA-67c8-pqhq-4rmx
- github.com/piscinajs/piscina/commit/0cb12fca37f526065b072592afe954574dcc656f
- github.com/piscinajs/piscina/commit/2f69f67159a0e48b38fd61fa4a91c2fdc19fff72
- github.com/piscinajs/piscina/commit/5be7bbb19e3787bb698862cd516121a578d690f7
- github.com/piscinajs/piscina/commit/bebbda255c2981cecddd36b171b94be2fd41c9a6
- github.com/piscinajs/piscina/releases/tag/v4.9.4
- github.com/piscinajs/piscina/releases/tag/v5.3.2
- github.com/piscinajs/piscina/releases/tag/v6.0.0-rc.5
- github.com/piscinajs/piscina/security/advisories/GHSA-67c8-pqhq-4rmx
- nvd.nist.gov/vuln/detail/CVE-2026-102992
Code Behaviors & Features
Detect and mitigate CVE-2026-102992 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 →