CVE-2026-29091
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 52 - wyżej niż 52% wszystkich znanych CVE
Streszczenie
W projekcie Locutus, który przenosi funkcje z innych języków programowania do JavaScriptu, odkryto podatność umożliwiającą zdalne wykonanie kodu (RCE). Problem dotyczy funkcji call_user_func_array i jej wrappera call_user_func, które nieprawidłowo walidują elementy tablicy callback przed przekazaniem ich do eval().
Ocena ryzyka
Atakujący może wstrzyknąć dowolny kod JavaScript do środowiska wykonawczego aplikacji, co prowadzi do pełnego przejęcia kontroli nad aplikacją, kradzieży danych lub dalszego ataku na infrastrukturę.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Locutus do wersji 3.0.0 lub nowszej, która zawiera poprawkę eliminującą podatność.
Inne podatności w Locutus
Zobacz wszystkie- CVE-2026-32304Krytyczne
W bibliotece Locutus w wersji przed 3.0.14 funkcja create_function(args, code) przekazuje oba parametry bezpośrednio do konstruktora Function bez żadnej sanityzacji, co umożliwia zdalne wykonanie dowolnego kodu JavaScript. Podatność ta dotyczy gałęzi v3.x i różni się od wcześniejszej luki CVE-2026-29091.
- CVE-2026-25521Wysokie
W bibliotece Locutus (wersje od 2.0.12 do 2.0.38) wykryto podatność na zanieczyszczenie prototypu (prototype pollution). Mimo wcześniejszej łatki sprawdzającej zabronione klucze, atakujący może nadal manipulować Object.prototype poprzez specjalnie spreparowane dane wejściowe wykorzystujące String.prototype.
Oryginalny opis (angielski, źródło NVD)
Locutus brings stdlibs of other programming languages to JavaScript for educational purposes. Prior to version 3.0.0, a remote code execution (RCE) flaw was discovered in the locutus project, specifically within the call_user_func_array function implementation. The vulnerability allows an attacker to inject arbitrary JavaScript code into the application's runtime environment. This issue stems from an insecure implementation of the call_user_func_array function (and its wrapper call_user_func), which fails to properly validate all components of a callback array before passing them to eval(). This issue has been patched in version 3.0.0.

