W bibliotece Feathers.js (wersje 5.0.0–5.0.41) klienci Socket.IO mogą przesyłać dowolne obiekty JavaScript jako argument id do metod serwisowych, co prowadzi do wstrzyknięcia operatorów MongoDB. Podatność umożliwia nieuprawniony dostęp do wszystkich dokumentów w kolekcji bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. From 5.0.0 to before 5.0.42, Socket.IO clients can send arbitrary JavaScript objects as the id argument to any service method (get, patch, update, remove). The transport layer performs no type checking on this argument. When the service uses the MongoDB adapter, these objects pass through getObjectId() and land directly in the MongoDB query as operators. Sending {$ne: null} as the id matches every document in the collection. This vulnerability is fixed in 5.0.42.
Warstwa transportowa Feathers.js nie weryfikuje typu argumentu id przekazywanego przez klientów Socket.IO do metod serwisowych (get, patch, update, remove). Gdy serwis korzysta z adaptera MongoDB, przekazany obiekt trafia bez walidacji do funkcji getObjectId(), a następnie bezpośrednio do zapytania MongoDB jako operator. Przykładowo, przesłanie obiektu {"$ne": null} jako id powoduje dopasowanie każdego dokumentu w kolekcji, ponieważ MongoDB interpretuje go jako prawidłowy operator porównania.
Nieuwierzytelniony atakujący może odczytać, zmodyfikować lub usunąć wszystkie dokumenty w dotkniętej kolekcji MongoDB, co oznacza pełną utratę poufności, integralności i dostępności przechowywanych danych.
Należy zaktualizować Feathers.js do wersji 5.0.42 lub nowszej, w której podatność została naprawiona. Szczegółowe informacje dostępne są w referencjach producenta (GHSA-p9xr-7p9p-gpqx).
Feathersjs Feathers w wersjach od 5.0.0 do 5.0.41 (włącznie), przy użyciu adaptera MongoDB.
Podatność dotyczy wyłącznie aplikacji używających adaptera MongoDB. Serwisy oparte na innych adapterach (np. SQL) mogą nie być bezpośrednio narażone na ten wektor ataku.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XFeathersjs Feathers
APPFeathersjs5.0.0 – 5.0.42 (bez)
Powiązane podatności
Feathers.js: pominięcie uwierzytelnienia OAuth umożliwia przejęcie konta
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Vers...
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. In v...
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. In v...
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Feat...