Patch Forecast
Amber warning
Patch this week.

CVE-2026-104849 · GHSA-85c8-ppgw-ccpr

Tinypool: Prototype Pollution Gadget to RCE in run() options

Risk score
78/100
CVSS
9.5 v4.0
Exploit chance (30 days)
0.4%
Published
2 Oct 2026

Open in the live forecast Today's forecast

What to know

What it is
Tinypool is a minimal Node.js worker thread pool implementation. Prior to 2.1.2, Tinypool reads filename from a caller-supplied options object in pool.run(task, options) without requiring an own property, so a polluted Object.prototype.filename can replace the intended worker module. Applications are affected only whe…
Affected
tinypool (npm) < 2.1.2
Fix
Upgrade tinypool to 2.1.2 or later.
Exploitation
Public proof of concept

Story map

Story map: tinypoolTHE FLAWSTHE FIXCVE-2026-104849Tinypool: Prototype PollutionGadget to RCE in run() optionsCVSS 9.5 · EPSS 0%CVE-2026-104848Tinypool: Prototype Pollutiongadget in worker options leadsto Remote Code ExecutionCVSS 9.5 · EPSS 0%Upgrade tinypool2.1.2 · 2.1.1or later on your release lineWho is exposedtinypool (npm) <= 2.1.0RED · ACT TODAYtinypoolTinypool is a minimal Node.jsworker thread poolimplementation. Prior to 2.1.1,Tinypool constructsThreadPool.options from anormal options object and readsthe execArgv and env worker…Where it standsPublic proof of conceptCONNECTS TOSame weaknessCode injection (CWE-94)239 other warnings in 30 days →
Story map: the flaws, the fix, how it unfolded and what it connects to. Boxes link to the record or article.

At a glance

tinypool: Red, act today. 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 …

The flaws

  • CVE-2026-104849: Tinypool: Prototype Pollution Gadget to RCE in run() options (CVSS 9.5 · EPSS 0%)
  • CVE-2026-104848: Tinypool: Prototype Pollution gadget in worker options leads to Remote Code Execution (CVSS 9.5 · EPSS 0%)

The fix

Upgrade tinypool: 2.1.2 · 2.1.1 or later on your release line

Who is exposed: tinypool (npm) <= 2.1.0

Where it stands

  • Public proof of concept

Connects to

Why it is Amber

  • CVSS 9.5 critical
  • Public exploit or proof of concept referenced
  • Remotely exploitable without logging in
  • On your watchlist: npm

Affected packages

PackageEcosystemVulnerableFixed in
tinypoolnpm< 2.1.22.1.2

References

Original description

Tinypool is a minimal Node.js worker thread pool implementation. Prior to 2.1.2, Tinypool reads filename from a caller-supplied options object in pool.run(task, options) without requiring an own property, so a polluted Object.prototype.filename can replace the intended worker module. Applications are affected only when they pass their own second-argument options object to pool.run(); calls without that argument use the trusted default options object. An attacker who can first pollute the prototype can cause the worker pool to load attacker-selected JavaScript and can read or modify task data with the host process's privileges. This issue is fixed in version 2.1.2.

Last activity 2 Oct 2026. Patch Forecast updates every hour.