CVE Intelligence

Vulnerabilidades do Vendurehq Vendure

🔔 Criar alerta RSS Verificador de versão

CVEs publicadas que afetam Vendurehq Vendure: 7 registro(s), com versões afetadas e correções.

CVE-2026-63472 Crítica · 9.1 CWE-287 17/09/2026
Vendure: External-authentication account takeover: external login linked to a pre-existing account by email without verification
Vendure is an open-source headless commerce platform. Prior to 3.7.0, ExternalAuthenticationService.createCustomerAndUser in packages/core/src/service/helpers/external-authentication/external-authentication.service.ts selects an existing customer user by emailAddress and attaches a newly presented ExternalAuthenticationMethod without requiring verified to be true. In deployments with a custom external AuthenticationStrategy that forwards an email whose ownership the provider has not verified, an attacker can authenticate with a victim's email and bind the attacker's external identity to the victim's existing account. This can expose orders, addresses, and personal information and permit account changes or orders as the victim. Native-only email and password deployments and external strategies that always require provider-verified email ownership are unaffected, and new-account creation for an unused email remains permitted. This issue is fixed in version 3.7.0.
CVE-2026-63461 Média · 5.3 CWE-200 17/09/2026
Vendure: Shop API list queries can return non-public entities when filterOperator is OR
Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop API products, collections, and facets queries combine mandatory visibility guards with caller-supplied filters using the caller-controlled filterOperator. When filterOperator is OR, a predicate matching a hidden entity can bypass the Product.enabled, Collection.isPrivate, or Facet.isPrivate guard. An unauthenticated caller can therefore retrieve disabled products and private collections or facets. This issue is fixed in version 3.6.5.
CVE-2026-63460 Alta · 7.5 CWE-1333 17/09/2026
Vendure: Unauthenticated ReDoS via `regex` filter on SQLite backends
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.
CVE-2026-63459 Alta · 8.7 CWE-79 17/09/2026
Vendure: Stored XSS in the Admin Dashboard via unsafe HTML-stripping (innerHTML) of entity descriptions
Vendure is an open-source headless commerce platform. Prior to 3.6.5, RichTextDescriptionCell in packages/dashboard/src/lib/components/shared/table-cell/order-table-cell-components.tsx attempts to strip markup by assigning an administrator-controlled description to a live element's innerHTML and then reading textContent. Active resource markup can execute an event handler during the innerHTML assignment before textContent is read. A lower-privilege administrator can store such markup in descriptions rendered by the Products list, Collections list, Promotions list, Payment Methods list, or Shipping Methods list, and script executes when another administrator views the affected row. This stored cross-site scripting can compromise the viewing administrator's session and enable cross-privilege or cross-channel administrative actions. This issue is fixed in version 3.6.5.
CVE-2026-67347 Média · 6.8 CWE-863 30/07/2026
Vendure 3.7.1 Cross-Channel Authorization Bypass via StockLocation and Asset Update
Vendure through 3.7.1, fixed in commit f67ef5f, contains a cross-channel authorization bypass vulnerability in stock-location.service.ts and asset.service.ts update methods that allows channel-scoped administrators to modify other tenants' data. Attackers can supply global IDs of StockLocation or Asset entities from different channels to overwrite inventory locations or catalog assets belonging to other tenants without proper channel isolation validation.
CVE-2026-40887 Crítica · 9.1 Exploit público CWE-89 21/04/2026
Injeção de SQL no Vendure Core na Shop API
Vendure é uma plataforma de comércio headless de código aberto. A partir da versão 1.7.4 e antes das versões 2.3.4, 3.5.7 e 3.6.2, existe uma vulnerabilidade de injeção de SQL sem autenticação na Shop API do Vendure. Um parâmetro de string de consulta controlado pelo usuário é inserido diretamente em uma expressão SQL bruta, sem parametrização ou validação, o que permite que um atacante execute SQL arbitrário no banco de dados. Isso afeta todos os backends de banco de dados suportados (PostgreSQL, MySQL/MariaDB, SQLite). A Admin API também é afetada, embora a exploração nela exija autenticação. As versões 2.3.4, 3.5.7 e 3.6.2 contêm uma correção. Para quem não puder atualizar imediatamente, o Vendure disponibilizou um hotfix que usa RequestContextService.getLanguageCode para validar a entrada languageCode na fronteira. Isso bloqueia cargas de injeção antes que cheguem a qualquer consulta. O hotfix substitui o método getLanguageCode existente em packages/core/src/service/helpers/request-context/request-context.service.ts. Valores inválidos são descartados silenciosamente e o idioma padrão do canal é usado no lugar. As versões corrigidas também convertem a interpolação SQL vulnerável em consulta parametrizada, como defesa em profundidade.
CVE-2026-25050 Média · 5.3 CWE-202 30/01/2026
Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
Vendure is an open-source headless commerce platform. Prior to version 3.5.3, the `NativeAuthenticationStrategy.authenticate()` method is vulnerable to a timing attack that allows attackers to enumerate valid usernames (email addresses). In `packages/core/src/config/auth/native-authentication-strategy.ts`, the authenticate method returns immediately if a user is not found. The significant timing difference (~200-400ms for bcrypt vs ~1-5ms for DB miss) allows attackers to reliably distinguish between existing and non-existing accounts. Version 3.5.3 fixes the issue.