CVE-2026-104849
KrytyczneCVSS 9.5Streszczenie
Tinypool przed wersją 2.1.2 odczytuje nazwę pliku z obiektu opcji dostarczonego przez wywołującego w pool.run(task, options) bez wymagania własnej właściwości, więc zanieczyszczony Object.prototype.filename może zastąpić zamierzony moduł roboczy. Aplikacje są dotknięte tylko wtedy, gdy przekazują własny obiekt opcji jako drugi argument do pool.run(); wywołania bez tego argumentu używają zaufanego domyślnego obiektu opcji. Atakujący, który najpierw może zanieczyścić prototyp, może spowodować, że pula robocza załaduje wybrany przez atakującego JavaScript i może odczytać lub zmodyfikować dane zadań z uprawnieniami procesu gospodarza. Problem został naprawiony w wersji 2.1.2.
Ocena ryzyka
Ryzyko obejmuje wykonanie dowolnego kodu JavaScript z uprawnieniami procesu gospodarza oraz potencjalny dostęp do poufnych danych lub modyfikację danych zadań, co może prowadzić do naruszenia bezpieczeństwa aplikacji.
Rekomendacja
Zaleca się aktualizację Tinypool do wersji 2.1.2 lub nowszej oraz unikanie przekazywania własnych obiektów opcji do pool.run() bez potrzeby, a także zabezpieczenie przed zanieczyszczeniem prototypu.
Inne podatności w Tinypool
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

