CVE-2026-63460
WysokieCVSS 7.5Streszczenie
Vendure w wersjach przed 3.6.5 pozwala nieuwierzytelnionemu użytkownikowi przesłać wzorzec wyrażenia regularnego powodujący katastrofalne cofanie się (catastrophic backtracking) przez StringOperators.regex w publicznym API GraphQL Shop. Wdrożenia oparte na better-sqlite3 i sqljs wykonują to wyrażenie synchronicznie w pętli zdarzeń Node.js, co może zablokować przetwarzanie żądań. Podatność została naprawiona w wersji 3.6.5.
Ocena ryzyka
Pojedyncze złośliwe żądanie może zablokować sklep i API administracyjne, a powtarzane żądania mogą utrzymywać trwałą odmowę usługi. Wdrożenia na PostgreSQL oraz MySQL/MariaDB nie są narażone na ten wektor.
Rekomendacja
Zaktualizuj Vendure do wersji 3.6.5 lub nowszej. Jeśli to niemożliwe, rozważ ograniczenie dostępu do publicznego API Shop lub migrację na PostgreSQL/MySQL.
Inne podatności w Vendure
Zobacz wszystkie- CVE-2026-63461Średnie
W Vendure przed wersją 3.6.5 publiczne zapytania Shop API dotyczące produktów, kolekcji i aspektów łączą obowiązkowe filtry widoczności z filtrami dostarczonymi przez wywołującego za pomocą kontrolowanego przez niego filterOperator. Gdy filterOperator ma wartość OR, predykat dopasowujący ukrytą encję może ominąć zabezpieczenia Product.enabled, Collection.isPrivate lub Facet.isPrivate. Nieuwierzytelniony wywołujący może w ten sposób pobrać wyłączone produkty oraz prywatne kolekcje lub aspekty.
- CVE-2026-63459Wysokie
Vendure w wersjach przed 3.6.5 zawiera podatność typu stored XSS w komponencie RichTextDescriptionCell, który przypisuje kontrolowany przez administratora opis do innerHTML elementu, a następnie odczytuje textContent. Złośliwy znacznik może wykonać obsługę zdarzenia podczas przypisania do innerHTML, zanim odczytany zostanie textContent. Administrator o niższych uprawnieniach może zapisać taki znacznik w opisach widocznych na listach produktów, kolekcji, promocji, metod płatności lub metod wysyłki, a skrypt wykona się, gdy inny administrator wyświetli dany wiersz.
- CVE-2026-67347Średnie
Podatność w Vendure (do wersji 3.7.1) umożliwia administratorom z ograniczeniem do kanału (channel-scoped) modyfikację danych innych dzierżawców (tenantów) poprzez ominięcie walidacji izolacji kanałów. Atak polega na podaniu globalnych identyfikatorów encji StockLocation lub Asset z innych kanałów.
- CVE-2026-63472Krytyczne
W Vendure funkcja createCustomerAndUser w zewnętrznym uwierzytelnianiu pobiera istniejące konto po adresie e-mail i łączy z nim nową metodę uwierzytelniania bez weryfikacji właściciela e-maila. Atakujący może użyć niezweryfikowanego e-maila, aby przejąć konto ofiary.
Oryginalny opis (angielski, źródło NVD)
Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop GraphQL API allows an unauthenticated caller to supply a catastrophically backtracking pattern through StringOperators.regex. packages/core/src/service/helpers/list-query-builder/parse-filter-params.ts passes the raw pattern to the REGEXP implementation registered by packages/core/src/service/helpers/list-query-builder/list-query-builder.ts, and better-sqlite3 and sqljs evaluate it synchronously in the Node.js event loop. ShopProductsResolver.products is publicly reachable, so one nested-quantifier pattern can block request processing and make the storefront and admin API unavailable, while repeated requests can sustain denial of service. PostgreSQL and MySQL or MariaDB deployments do not execute this regular expression in the Node.js event loop. This issue is fixed in version 3.6.5.

