Skip to content
OpenAdvisories
Critical · 9.5 Public exploit CVE-2026-104849 EUVD-2026-91719GHSA-85c8-ppgw-ccpr

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

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

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.

Affected products

VendorProductAffectedFixed
tinylibs tinypool < 2.1.2 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
npm tinypool < 2.1.2 2.1.2 GHSA-85c8-ppgw-ccpr

References