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.
Published: 2026-10-02
Score: 9.5 Critical
EPSS: < 1% Very Low
KEV: No
AI Analysis

Analysis and contextual insights are available on OpenCVE Cloud.

Remediation

No solution or workaround provided in the CVE record.

Additional remediation guidance may be available on OpenCVE Cloud.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-85c8-ppgw-ccpr Tinypool: Prototype Pollution Gadget to RCE in run() options
History

Wed, 07 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Critical


Tue, 06 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Sun, 04 Oct 2026 22:15:00 +0000

Type Values Removed Values Added
First Time appeared Tinylibs
Tinylibs tinypool
Vendors & Products Tinylibs
Tinylibs tinypool

Fri, 02 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
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.
Title Tinypool: Prototype Pollution Gadget to RCE in run() options
Weaknesses CWE-1321
CWE-94
References
Metrics cvssV4_0

{'score': 9.5, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


Subscriptions

Tinylibs Tinypool
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-06T16:35:59.948Z

Reserved: 2026-10-02T14:38:43.244Z

Link: CVE-2026-104849

cve-icon Vulnrichment

Updated: 2026-10-06T16:35:56.141Z

cve-icon NVD

Status : Deferred

Published: 2026-10-02T17:17:03.623

Modified: 2026-10-06T17:17:15.700

Link: CVE-2026-104849

cve-icon Redhat

Severity : Critical

Publid Date: 2026-10-02T16:17:28Z

Links: CVE-2026-104849 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-04T20:53:36Z

Weaknesses
  • CWE-1321

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • CWE-94

    Improper Control of Generation of Code ('Code Injection')