Tinypool
Monthly
Code injection in Tinypool versions prior to 2.1.2 allows an attacker who first pollutes Object.prototype to load attacker-controlled JavaScript modules via the worker pool, potentially reading or modifying task data with host process privileges. The flaw is exploitable only when an application calls pool.run(task, options) with its own options object; calls that omit the options argument use a trusted default and are unaffected. No public exploit code or active exploitation has been identified, and the attack requires a pre-existing prototype-pollution vulnerability in the host application, making real-world exploitation condition-gated.
Prototype pollution in the Tinypool npm package prior to 2.1.1 escalates to code execution: an unauthenticated remote attacker who can first pollute Object.prototype.execArgv or Object.prototype.env.NODE_OPTIONS (via a separate prototype-pollution flaw in the host application) has those inherited values copied into ThreadPool.options and forwarded to worker_threads.Worker, so every newly spawned worker loads attacker-supplied JavaScript through --import/--require preload arguments or NODE_OPTIONS. The payload executes with the host process's privileges, potentially exposing CI secrets, signing material, or build artifacts. The vendor assigns a CVSS 4.0 base score of 9.5 (AT:P - the attack requires an existing pollution primitive), exploitation is not confirmed as actively exploited (no CISA KEV listing) and no public exploit identified at time of analysis, although the upstream fix commit includes a regression test that demonstrates the execArgv/NODE_OPTIONS technique.
Code injection in Tinypool versions prior to 2.1.2 allows an attacker who first pollutes Object.prototype to load attacker-controlled JavaScript modules via the worker pool, potentially reading or modifying task data with host process privileges. The flaw is exploitable only when an application calls pool.run(task, options) with its own options object; calls that omit the options argument use a trusted default and are unaffected. No public exploit code or active exploitation has been identified, and the attack requires a pre-existing prototype-pollution vulnerability in the host application, making real-world exploitation condition-gated.
Prototype pollution in the Tinypool npm package prior to 2.1.1 escalates to code execution: an unauthenticated remote attacker who can first pollute Object.prototype.execArgv or Object.prototype.env.NODE_OPTIONS (via a separate prototype-pollution flaw in the host application) has those inherited values copied into ThreadPool.options and forwarded to worker_threads.Worker, so every newly spawned worker loads attacker-supplied JavaScript through --import/--require preload arguments or NODE_OPTIONS. The payload executes with the host process's privileges, potentially exposing CI secrets, signing material, or build artifacts. The vendor assigns a CVSS 4.0 base score of 9.5 (AT:P - the attack requires an existing pollution primitive), exploitation is not confirmed as actively exploited (no CISA KEV listing) and no public exploit identified at time of analysis, although the upstream fix commit includes a regression test that demonstrates the execArgv/NODE_OPTIONS technique.