CVE-2026-40887Vendure是一个开源的无头电商平台。在1.7.4版本及之后且在2.3.4、3.5.7和3.6.2版本之前,Vendure Shop API中存在一个未经身份验证的SQL注入漏洞。用户控制的查询字符串参数未经参数化或验证直接插入原始SQL表达式,允许攻击者对数据库执行任意SQL语句。该漏洞影响所有支持的数据库后端(PostgreSQL、MySQL/MariaDB、SQLite)。尽管Admin API也受影响,但利用该部分漏洞需要身份验证。
该漏洞的核心问题在于Vendure处理Shop API请求时,未对用户提供的查询字符串参数(根据补丁分析为`languageCode`)进行充分的校验和转义。系统直接将此参数拼接进原始SQL查询语句中,导致了经典的SQL注入漏洞。由于缺乏参数化查询机制,攻击者可以通过注入单引号等SQL元字符来改变查询逻辑。攻击者无需登录即可利用此漏洞,针对PostgreSQL、MySQL/MariaDB或SQLite数据库执行任意SQL命令。这可能导致数据泄露(机密性影响)或通过破坏数据导致服务不可用(可用性影响)。补丁版本通过引入参数化查询以及输入边界验证机制修复了该缺陷。