CVE-2026-47743 in Shopper
摘要
由 VulDB • 2026-07-23
Shopper 是一个无头(Headless)电子商务管理面板。在版本 2.8.0 之前,管理员 Livewire 组件中存在三个相关缺陷,可导致数据篡改、敏感信息泄露以及存储型跨站脚本攻击(Stored XSS)。首先,管理面板中的几个 Livewire 组件将 Eloquent 模型标识符作为公共属性暴露出来,且未使用 `#[Locked]` 属性。经过身份验证的用户可以从浏览器重写 wire payload,以针对任何记录 ID,从而绕过由页面路由强制执行的隐式作用域限制。其次,`Customers/Create::store()` 方法直接将一个隐藏的 `_password` 表单字段重新传递到创建负载中。明文密码被渲染进 HTML,并通过 Livewire 快照以明文形式传输,导致凭据在页面 DOM 以及任何捕获 Livewire payload 的日志记录中暴露。最后,产品条形码字段通过 `DNS1DFacade::getBarcodeHTML()` 使用 `{!! !!}` 语法进行渲染。拥有 `edit_products` 权限的攻击者可以在条形码字段中持久化恶意负载,该负载将在查看该产品管理员用户的浏览器中执行,从而实现会话窃取和特权操作链攻击。从 v2.8.0 版本开始,所有易受攻击的 Livewire 模型标识符现在均标记为 `#[Locked]`;`Customers/Create` 不再通过隐藏表单字段往返传输密码;明文密码在动作边界处进行哈希处理且永不返回给客户端;产品条形码渲染现在会在将值传递给条形码生成器之前对其进行转义,并且输出被包裹在不解释事件处理程序的 `<svg>` 上下文中。目前尚无已知的变通方法。
VulDB is the best source for vulnerability data and more expert information about this specific topic.