Katalog CVE

CVE-2026-125116

ŚrednieCVSS 4.8
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Mongoose przed wersjami 6.13.12, 7.8.13, 8.24.7 i 9.11.4 używa wartości klucza dyskryminatora kontrolowanych przez atakującego (w tym domyślnego pola __t) do indeksowania rejestrów obiektów, takich jak Model.discriminators i schema.discriminators, bez wymagania własnej właściwości. Wartości takie jak constructor, toString lub hasOwnProperty mogą wskazywać na dziedziczone funkcje wbudowane, powodując pomieszanie typów w konstrukcji modeli, tworzeniu dokumentów, hydracji, rzutowaniu zapytań i aktualizacji oraz operacjach populate. W ścieżce bulkWrite() insertOne z skipValidation wartość constructor może spowodować zapis surowego obiektu bez rzutowania schematu, a zatruty dokument może powodować błędy wszystkich zapytań do momentu jego usunięcia.

Ocena ryzyka

Pomieszanie typów może prowadzić do nieprawidłowego działania aplikacji, obejścia walidacji i trwałych błędów zapytań. Zapis zatrutego dokumentu może zakłócić dostęp do danych i wymagać ręcznej interwencji.

Rekomendacja

Zaktualizuj Mongoose do wersji 6.13.12, 7.8.13, 8.24.7, 9.11.4 lub nowszej. Unikaj używania skipValidation w bulkWrite() z danymi kontrolowanymi przez użytkownika.

Inne podatności w Mongoose

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

Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment. Prior to 6.13.12, 7.8.13, 8.24.7, and 9.11.4, Mongoose uses attacker-controlled discriminator key values, including the default __t field, to index plain-object registries such as Model.discriminators and schema.discriminators without requiring an own property. Values such as constructor, toString, or hasOwnProperty can therefore resolve to inherited built-in functions instead of a registered discriminator, causing type confusion in model construction, document creation, hydration, query and update casting, embedded discriminators, and populate operations. In the bulkWrite() insertOne path with skipValidation enabled, a constructor value can cause a raw input object to be stored without schema casting or strict filtering, and a stored poisoned document can make every query that hydrates it fail until the document is removed. The weakness reads inherited properties but does not modify Object.prototype and is not prototype pollution. This issue is fixed in versions 6.13.12, 7.8.13, 8.24.7, and 9.11.4.

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