CVE-2026-40887 in vendure
摘要
由 VulDB • 2026-05-20
Vendure 是一个开源的无头电商平台。从版本 1.7.4 开始,直至 2.3.4、3.5.7 和 3.6.2 之前的版本,Vendure Shop API 中存在一个未认证的 SQL 注入漏洞。用户可控的查询字符串参数被直接插值到原始 SQL 表达式中,未进行参数化或验证,从而使攻击者能够针对数据库执行任意 SQL 语句。此漏洞影响所有受支持的数据库后端(PostgreSQL、MySQL/MariaDB、SQLite)。Admin API 也受到影响,但利用该 API 需要身份认证。版本 2.3.4、3.5.7 和 3.6.2 包含修复补丁。对于无法立即升级的用户,Vendure 提供了一个热修复补丁,该补丁使用 `RequestContextService.getLanguageCode` 在边界处验证 `languageCode` 输入。这可以在注入载荷到达任何查询之前将其拦截。该热修复补丁替换了 `packages/core/src/service/helpers/request-context/request-context.service.ts` 中现有的 `getLanguageCode` 方法。无效值会被静默丢弃,并改用频道的默认语言。已修补版本还将易受攻击的 SQL 插值转换为参数化查询,以实现纵深防御。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.