Skip to content
OpenAdvisories
Critical · 9.5 CVE-2026-104848 EUVD-2026-91718GHSA-5gmw-xhrv-c9v3

Tinypool: Prototype Pollution gadget in worker options leads to Remote Code Execution

Published Oct 2, 2026 · Updated Oct 2, 2026 · Assigned by GitHub_M

Description

Tinypool is a minimal Node.js worker thread pool implementation. Prior to 2.1.1, Tinypool constructs ThreadPool.options from a normal options object and reads the execArgv and env worker options in dist/index.js, allowing values inherited from a polluted Object.prototype to be copied into own properties and passed to worker_threads.Worker. An attacker who can first pollute either property can cause each newly spawned worker to load attacker-selected JavaScript through command-line preload arguments or NODE_OPTIONS, resulting in code execution with the host process's privileges and possible access to CI secrets, signing material, or build artifacts. This issue is fixed in version 2.1.1.

Affected products

VendorProductAffectedFixed
tinylibs tinypool < 2.1.1 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm tinypool < 2.1.1 2.1.1 GHSA-5gmw-xhrv-c9v3

References