EverShop, platforma e-commerce oparta na TypeScript, jest podatna na second-order SQL injection w mechanizmie obsługi zdarzeń aktualizacji i usuwania kategorii. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika, a jej wykorzystanie może prowadzić do nieautoryzowanego odczytu i modyfikacji danych.
▸ Pokaż oryginał (EN)
EverShop is a TypeScript-first eCommerce platform. During category update and deletion event handling, the application embeds path / request_path values—derived from the url_key stored in the database—into SQL statements via string concatenation and passes them to execute(). As a result, if a malicious string is stored in url_key , subsequent event processing modifies and executes the SQL statement, leading to a second-order SQL injection. Patched from v2.1.1.
Aplikacja przechowuje wartość url_key w bazie danych. Podczas przetwarzania zdarzeń aktualizacji lub usunięcia kategorii, pola path oraz request_path — pochodne url_key — są wstawiane bezpośrednio do zapytań SQL metodą konkatenacji łańcuchów i przekazywane do funkcji execute(). Jeśli atakujący zdoła zapisać w url_key złośliwy ciąg znaków, zostanie on użyty w późniejszym etapie przy wykonaniu zapytania SQL, co stanowi klasyczny second-order SQL injection — payload nie jest wykonywany natychmiast przy wprowadzeniu, lecz przy kolejnym przetwarzaniu danych.
Atakujący może uzyskać nieautoryzowany dostęp do danych przechowywanych w bazie danych (wysoka poufność) oraz je zmodyfikować (wysoka integralność), co w środowisku e-commerce oznacza ryzyko wycieku danych klientów, zamówień i konfiguracji sklepu.
Należy zaktualizować EverShop do wersji v2.1.1 lub nowszej, w której podatność została załatana. Poprawka dostępna w commicie 5c5bdf2c1ad5d16ae68e9e48b494563953b6d1cd w repozytorium producenta.
EverShop w wersjach przed v2.1.1
Podatność sklasyfikowana jako second-order SQL injection — payload jest przechowywany w bazie danych i wykonywany podczas późniejszego przetwarzania zdarzeń, co utrudnia jej wykrycie przez standardowe mechanizmy walidacji wejścia.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/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:XEvershop
APPEvershop≤ 2.1.0
Powiązane podatności
EverShop: token resetowania hasła ujawniany w odpowiedzi API
Hardkodowany sekret HMAC w @evershop/evershop umożliwia fałszowanie tokenów JWT
RCE i ujawnienie danych w EverShop NPM przez plik route.json
A Denial of Service (DoS) vulnerability in evershop 2.1.0 and prior allows unauthenticated attackers to exhaus...
EverShop 2.0.1 allows a remote unauthenticated attacker to upload arbitrary files and create directories via t...