CVE-2026-21450CVE-2026-21450是Bagisto电商平台中的一个严重安全漏洞,CVSS评分高达9.8分(满分10分)。Bagisto是一个基于Laravel框架开发的开源电子商务平台,广泛应用于各类在线商城建设。该漏洞存在于2.3.10之前的版本中,根源在于应用程序对用户输入的type参数缺乏充分的过滤和验证。攻击者可利用此漏洞在服务器端注入恶意Blade模板代码,进而绕过安全限制执行任意PHP函数,最终实现远程代码执行(RCE)。由于攻击向量为网络层面且无需认证,攻击者可以在无需任何用户交互的情况下发起攻击,对系统机密性、完整性和可用性造成严重影响。此漏洞已被GitHub安全顾问GHSA-9hvg-qw5q-wqwp记录,官方已在2.3.10版本中完成修复。建议所有使用受影响版本的用户立即升级以消除安全风险。
该漏洞属于经典的服务器端模板注入(SSTI)类型,攻击者通过操纵type参数向服务器注入恶意Blade模板语法。Bagisto使用Laravel Blade作为模板引擎,Blade引擎支持使用{{}}或{!! !!}语法来渲染变量内容。当应用程序直接将用户可控的type参数值传递给Blade模板进行渲染时,攻击者可以构造特殊的表达式来执行PHP代码。例如,攻击者可注入类似{!! php代码 !!}的payload,绕过模板引擎的输出过滤机制直接执行PHP函数。由于Laravel的Blade引擎在渲染前不会自动对输入进行安全转义,恶意代码将被服务器执行。攻击者通常利用system()、exec()、shell_exec()等函数执行操作系统命令,从而完全控制服务器。漏洞的利用前提是应用程序存在将用户输入直接传递给模板引擎的代码路径,且未实施输入过滤或使用安全的渲染方式。修复方案需要在数据进入模板引擎前进行严格的输入验证和过滤,或使用安全的模板渲染API避免直接传递用户输入。