PT-2026-33235 · Npm · @Vendure/Core

CVE-2026-40887

·

Publicado

2026-04-14

·

Atualizado

2026-04-22

CVSS v3.1

9.1

Crítica

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Name of the Vulnerable Software and Affected Versions @vendure/core versões anteriores a 2.3.4 @vendure/core versões 3.0.0 até 3.5.6 @vendure/core versões 3.6.0 até 3.6.1
Description Uma injeção de SQL não autenticada existe na Shop API e uma injeção de SQL autenticada existe na Admin API. O problema ocorre porque um parâmetro de string de consulta controlado pelo usuário é interpolado diretamente em uma expressão SQL bruta sem parametrização ou validação, permitindo a execução de SQL arbitrário contra bancos de dados PostgreSQL, MySQL/MariaDB e SQLite. Especificamente, na função findOneBySlug() do ProductService, a variável languageCode do contexto da requisição é incorporada em uma expressão SQL CASE via template literal. Como o valor de languageCode pode originar-se da string de consulta HTTP e carece de validação em tempo de execução, um invasor pode injetar SQL malicioso ao anexar um parâmetro languageCode manipulado às requisições da Shop API.
Recommendations Atualizar @vendure/core para a versão 2.3.4. Atualizar @vendure/core para a versão 3.5.7. Atualizar @vendure/core para a versão 3.6.2. Como solução temporária, aplique uma correção (hotfix) na função getLanguageCode() em packages/core/src/service/helpers/request-context/request-context.service.ts para validar se a entrada languageCode corresponde à expressão regular ^[a-zA-Z0-9 -]+$ antes de ser processada.

Exploit

Correção

SQL injection

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-40887
GHSA-9PP3-53P2-WW9V

Produtos afetados

@Vendure/Core