CVE-2026-104849: CWE-94: Improper Control of Generation of Code ('Code Injection') in tinylibs tinypool
Tinypool, a minimal Node.js worker thread pool implementation, has a critical code injection vulnerability (CVE-2026-104849) in versions prior to 2.1.2. The issue arises because tinypool reads the filename property from a caller-supplied options object without requiring it to be an own property, allowing a polluted Object.prototype.filename to override the intended worker module. This can lead to execution of attacker-controlled JavaScript with the host process's privileges if an attacker can first pollute the prototype and the application passes a custom options object to pool.run(). The vulnerability is fixed in version 2.1.2.
AI Analysis
Technical Summary
CVE-2026-104849 is a code injection vulnerability in tinypool before version 2.1.2. Tinypool's pool.run(task, options) method reads the filename property from the options object without verifying it is an own property, allowing an attacker who can pollute Object.prototype.filename to cause the worker pool to load arbitrary JavaScript code. This enables the attacker to read or modify task data with the privileges of the host process. The vulnerability only affects applications that pass their own options object to pool.run(); calls without this argument use a trusted default. The issue is resolved in tinypool version 2.1.2.
Potential Impact
An attacker capable of polluting the Object.prototype.filename property and influencing the options argument to pool.run() can cause tinypool to load and execute arbitrary JavaScript code within the worker pool. This leads to code injection with the privileges of the host process, potentially allowing unauthorized data access or modification. The vulnerability does not affect applications that do not pass a custom options object to pool.run().
Mitigation Recommendations
Upgrade tinypool to version 2.1.2 or later, where this vulnerability is fixed. Applications that do not pass a custom options object to pool.run() are not affected. There is no indication of alternative mitigations; applying the official fix is recommended.
CVE-2026-104849: CWE-94: Improper Control of Generation of Code ('Code Injection') in tinylibs tinypool
Description
Tinypool, a minimal Node.js worker thread pool implementation, has a critical code injection vulnerability (CVE-2026-104849) in versions prior to 2.1.2. The issue arises because tinypool reads the filename property from a caller-supplied options object without requiring it to be an own property, allowing a polluted Object.prototype.filename to override the intended worker module. This can lead to execution of attacker-controlled JavaScript with the host process's privileges if an attacker can first pollute the prototype and the application passes a custom options object to pool.run(). The vulnerability is fixed in version 2.1.2.
CVSS v4.0
Score 9.5critical
Affected software
tinylibs
tinypool
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-104849 is a code injection vulnerability in tinypool before version 2.1.2. Tinypool's pool.run(task, options) method reads the filename property from the options object without verifying it is an own property, allowing an attacker who can pollute Object.prototype.filename to cause the worker pool to load arbitrary JavaScript code. This enables the attacker to read or modify task data with the privileges of the host process. The vulnerability only affects applications that pass their own options object to pool.run(); calls without this argument use a trusted default. The issue is resolved in tinypool version 2.1.2.
Potential Impact
An attacker capable of polluting the Object.prototype.filename property and influencing the options argument to pool.run() can cause tinypool to load and execute arbitrary JavaScript code within the worker pool. This leads to code injection with the privileges of the host process, potentially allowing unauthorized data access or modification. The vulnerability does not affect applications that do not pass a custom options object to pool.run().
Mitigation Recommendations
Upgrade tinypool to version 2.1.2 or later, where this vulnerability is fixed. Applications that do not pass a custom options object to pool.run() are not affected. There is no indication of alternative mitigations; applying the official fix is recommended.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-10-02T14:38:43.244Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6abfdc6fa43b0b3b89d7d33a
Added to database: 10/02/2026, 16:31:43 UTC
Last enriched: 10/02/2026, 16:46:02 UTC
Last updated: 10/02/2026, 17:12:13 UTC
Views: 4
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.