CVE-2026-33994
KrytyczneStreszczenie
W wersjach od 2.0.39 do przed 3.0.25 pakietu npm locutus występuje podatność na zanieczyszczenie prototypu w funkcji `parse_str`. Atakujący może zanieczyścić `Object.prototype`, nadpisując `RegExp.prototype.test` i przekazując spreparowany ciąg zapytania do `parse_str`, omijając zabezpieczenie przed zanieczyszczeniem prototypu.
Ocena ryzyka
Podatność ta może prowadzić do nieautoryzowanego dostępu do obiektów w aplikacji, co może skutkować poważnymi konsekwencjami dla bezpieczeństwa danych i integralności systemu.
Rekomendacja
Zaleca się aktualizację pakietu locutus do wersji 3.0.25 lub nowszej, aby usunąć tę podatność oraz zastosowanie dodatkowych zabezpieczeń w celu ochrony przed zanieczyszczeniem prototypu.
Oryginalny opis (angielski, źródło NVD)
Locutus brings stdlibs of other programming languages to JavaScript for educational purposes. Starting in version 2.0.39 and prior to version 3.0.25, a prototype pollution vulnerability exists in the `parse_str` function of the npm package locutus. An attacker can pollute `Object.prototype` by overriding `RegExp.prototype.test` and then passing a crafted query string to `parse_str`, bypassing the prototype pollution guard. This vulnerability stems from an incomplete fix for CVE-2026-25521. The CVE-2026-25521 patch replaced the `String.prototype.includes()`-based guard with a `RegExp.prototype.test()`-based guard. However, `RegExp.prototype.test` is itself a writable prototype method that can be overridden, making the new guard bypassable in the same way as the original — trading one hijackable built-in for another. Version 3.0.25 contains an updated fix.

