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.
Published: 2026-10-02
Score: 9.5 Critical
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

Tinypool constructs thread pool options by copying values from a standard options object before passing them to the Node.js worker_threads.Worker constructor. When this copying is performed without protecting against Object.prototype pollution, an attacker who can inject properties onto Object.prototype can cause malicious execArgv or env values to be copied into the worker options. The attacker can then specify arbitrary JavaScript code to preload via command‑line arguments or NODE_OPTIONS, resulting in execution with the host process’s privileges. This prototype‑pollution flaw directly enables remote code execution.

Affected Systems

The vulnerability affects the tinylibs Tinypool library, specifically all versions prior to 2.1.1. Systems using tinypool 2.1.0 or earlier, regardless of platform, are vulnerable.

Risk and Exploitability

The CVSS score of 9.5 indicates critical severity, and although EPSS is not available, the flaw’s nature and impact suggest a high exploitation likelihood in suitable contexts. The vulnerability is not currently listed in the CISA KEV catalog, but its existence and potential to run arbitrary code make it a high‑risk issue. Attackers would need the ability to influence Object.prototype in the Node.js process that uses tinypool, typically through user‑controlled input or unsanitized data paths, to trigger code execution in the host process.

Generated by OpenCVE AI on October 2, 2026 at 17:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade tinypool to version 2.1.1 or later.
  • If upgrading immediately is not possible, validate and sanitize all worker options to ensure that no Object.prototype properties are copied into the options object before passing to Worker.
  • Run the application with the minimal required privileges and isolate worker threads in a restricted environment to reduce the impact should a prototype pollution attempt succeed.

Generated by OpenCVE AI on October 2, 2026 at 17:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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.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.
Title Tinypool: Prototype Pollution gadget in worker options leads to Remote Code Execution
Weaknesses CWE-1321
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

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-02T17:29:40.500Z

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

Link: CVE-2026-104848

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

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

Modified: 2026-10-02T18:33:20.487

Link: CVE-2026-104848

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-02T17:30:18Z

Weaknesses
  • CWE-1321

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