Katalog CVE

CVE-2026-40887

KrytyczneCVSS 9.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Wysokie ryzyko
1.76%

Percentyl 78 - wyżej niż 78% wszystkich znanych CVE

Streszczenie

Vendure zawiera nieuwierzytelnioną podatność SQL injection w Shop API, gdzie parametr zapytania jest wstawiany bezpośrednio do surowego wyrażenia SQL bez parametryzacji. Dotyczy to wszystkich obsługiwanych baz danych (PostgreSQL, MySQL/MariaDB, SQLite), a Admin API również jest podatne, choć wymaga uwierzytelnienia. Podatność naprawiono w wersjach 2.3.4, 3.5.7 i 3.6.2, a dla osób niemogących natychmiast zaktualizować udostępniono hotfix walidujący languageCode.

Ocena ryzyka

Atakujący może wykonywać dowolne zapytania SQL przeciwko bazie danych bez uwierzytelnienia, co grozi wyciekiem, modyfikacją lub zniszczeniem danych. Może to prowadzić do pełnego przejęcia danych sklepu i naruszenia poufności.

Rekomendacja

Zaktualizuj Vendure do wersji 2.3.4, 3.5.7 lub 3.6.2. Jeśli aktualizacja nie jest możliwa natychmiast, zastosuj udostępniony hotfix walidujący languageCode.

Inne podatności w Vendure

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

Vendure is an open-source headless commerce platform. Starting in version 1.7.4 and prior to versions 2.3.4, 3.5.7, and 3.6.2, an unauthenticated SQL injection vulnerability exists in the Vendure Shop API. A user-controlled query string parameter is interpolated directly into a raw SQL expression without parameterization or validation, allowing an attacker to execute arbitrary SQL against the database. This affects all supported database backends (PostgreSQL, MySQL/MariaDB, SQLite). The Admin API is also affected, though exploitation there requires authentication. Versions 2.3.4, 3.5.7, and 3.6.2 contain a patch. For those who are unable to upgrade immediately, Vendure has made a hotfix available that uses `RequestContextService.getLanguageCode` to validate the `languageCode` input at the boundary. This blocks injection payloads before they can reach any query. The hotfix replaces the existing `getLanguageCode` method in `packages/core/src/service/helpers/request-context/request-context.service.ts`. Invalid values are silently dropped and the channel's default language is used instead. The patched versions additionally convert the vulnerable SQL interpolation to a parameterized query as defense in depth.

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