Katalog CVE

CVE-2026-84368

NiskieCVSS 3.7
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Biblioteka joi (oraz @hapi/joi) zawiera podatność na zanieczyszczenie prototypu w pliku lib/messages.js. Funkcje exports.compile() i exports.merge() ponownie wykorzystują dziedziczone obiekty dla kluczy językowych kontrolowanych przez atakującego, co pozwala na zapis właściwości do Object.prototype.

Ocena ryzyka

Aplikacje, które polegają na obecności dziedziczonych właściwości, mogą podejmować błędne decyzje dla każdego obiektu, co może prowadzić do nieprawidłowego działania lub naruszenia logiki bezpieczeństwa.

Rekomendacja

Zaktualizuj bibliotekę joi do wersji 17.13.6 lub 18.2.5. Dla @hapi/joi nie ma dostępnej poprawki, więc rozważ migrację do joi.

Inne podatności w joi

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

joi is a schema description language and data validator for JavaScript. From 16.0.0 until 17.13.6 and 18.2.5, the @hapi/joi package through 17.1.1 and the successor joi package contain prototype pollution in lib/messages.js, where exports.compile() and exports.merge() reuse inherited objects for attacker-controlled language keys supplied through messages(), message(), prefs({ messages }), Joi.extend({ messages }), or rule({ message }). A language key named __proto__ writes properties onto Object.prototype, and constructor writes to the Object function's static properties. A consuming application that gates on the presence of an inherited property can take the wrong branch for every inspected object. The flaw is not reachable from data that joi validates and requires an application to feed untrusted input directly into schema-construction configuration. This issue is fixed in joi versions 17.13.6 and 18.2.5; no fixed @hapi/joi version is available.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS