SSCMS 的 AgentController(/api/admin/agent/*)没有类级别 [Authorize] 保护,仅依赖 SecurityKey 字符串比对认证。同一 SecurityKey 被复用为所有 JWT Token 的 HMAC-SHA256 签名密钥。攻击者可在系统未安装时通过 InstallController.Prepare 获取 SecurityKey 或通过文件读取获取 sscms.json,随后伪造管理员 JWT 完全接管系统。
Activity
[-]SSCMS AgentController 缺失认证且 SecurityKey 复用为 JWT 签名密钥导致完全系统接管[/-][+]安装阶段 SecurityKey 泄露且安装后仍可创建管理员(SSCMS 7.4.0,已本地验证)[/+]mofeifeifei commentedon Jul 14, 2026
概要
我在本地 SSCMS 7.4.0 隔离环境中确认:系统安装前,未认证的安装准备流程会返回实例的
SecurityKey;安装完成后,该密钥未被轮换或失效,仍可被 Agent 安装流程接受,并创建额外管理员账户。该问题属于安装生命周期中的密钥暴露与访问控制问题。
已验证范围
SecurityKeySecurityKey在安装后仍被 Agent 安装流程接受,可创建第二个管理员未对外部实例、生产数据或第三方系统进行测试。
影响
若攻击者在实例暴露但尚未安装时获取到该引导密钥,并在合法用户完成安装后使用该密钥,则可创建管理员账户并取得后台管理权限。
建议保守评级为 High,CVSS v3.1:
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H(8.1)修复建议