Katalog CVE

CVE-2026-125117

WysokieCVSS 8.2
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Mongoose może schodzić do właściwości dziedziczonych podczas ładowania dokumentów w init(), ustawiania ścieżek z kropkami w $__set oraz scalania dokumentów aktualizacji w utils.mergeClone. Klucze kontrolowane przez atakującego, takie jak toString lub valueOf, mogą spowodować zapis do współdzielonych funkcji wbudowanych zamiast do własnej właściwości. Spreparowany dokument, ścieżka Mixed, dokument nieścisły lub źródło Query.prototype.merge() może nadpisać Object.prototype.toString.call, powodując awarie późniejszych zapytań na niezwiązanych modelach do czasu restartu procesu. Dodatkowo, gdy atakujący kontroluje ścieżkę z kropkami przekazaną do doc.set() dla poddokumentu z strict: false, zejście przez $__set może dotrzeć do $__schema i zmienić współdzielone walidatory lub opcje schematu.

Ocena ryzyka

Atakujący może uszkodzić współdzielone obiekty w pamięci, powodując odmowę działania aplikacji lub zmianę zachowania walidacji dla kolejnych dokumentów. Może to prowadzić do obejścia walidacji lub trwałych awarii wymagających restartu.

Rekomendacja

Zaktualizuj Mongoose do wersji 6.13.12, 7.8.13, 8.24.7 lub 9.11.4 (lub nowszej). Do czasu aktualizacji unikaj przekazywania niezaufanych ścieżek z kropkami do doc.set() oraz niezaufanych danych do operacji scalania.

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 can descend into inherited properties while loading database documents in init(), setting dotted paths in $__set, and merging update documents in utils.mergeClone. Attacker-controlled keys such as toString or valueOf can therefore cause Mongoose to write into shared built-in functions instead of an own property. A crafted document, Mixed path, non-strict document or subdocument, findOneAndReplace() replacement, chained update, or Query.prototype.merge() source can overwrite Object.prototype.toString.call, causing later queries on unrelated models to fail until the process restarts. Separately, when an attacker controls the dotted path passed to doc.set(path, value) for a subdocument configured with strict: false, descent through $__set can reach $__schema and alter shared validators or schema options for later documents. Mongoose already blocks __proto__, constructor, and prototype, so this issue overwrites properties on reachable shared objects rather than adding new properties directly to Object.prototype. 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