IPBUF安全漏洞报告
English
CVE-2026-39397 CVSS 9.4 严重

CVE-2026-39397 payload-puck插件访问控制绕过漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-39397
漏洞类型
访问控制绕过
CVSS评分
9.4 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
@delmaredigital/payload-puck

相关标签

访问控制绕过PayloadCMSpayload-puckCVE-2026-39397

漏洞概述

该漏洞存在于 @delmaredigital/payload-puck 插件 0.6.23 之前的版本中。插件在注册 /api/puck/* CRUD 端点处理程序时,错误地使用 overrideAccess: true 参数调用 Payload 本地 API。这导致系统完全绕过了集合级别的访问控制机制,且忽略预定义的访问规则。未经认证的攻击者可利用此漏洞读取敏感数据或篡改系统内容。

技术细节

漏洞根源在于 @delmaredigital/payload-puck 插件中 createPuckPlugin() 函数的实现逻辑缺陷。当该函数注册 /api/puck/* 路径下的所有 CRUD(创建、读取、更新、删除)端点处理程序时,内部在调用 Payload 的本地 API 时,硬编码使用了 overrideAccess: true 参数。在 Payload CMS 的架构中,此参数用于强制绕过系统的访问控制层。因此,尽管开发者可能在插件配置选项或 Payload 集合定义中精心设计了 access 函数以限制访问,但这些规则在处理上述特定端点请求时被完全静默忽略。结合 CVSS 向量 AV:N/AC:L/PR:N,攻击者无需任何身份认证,仅需构造指向 /api/puck/* 的特定 HTTP 请求,即可对受保护的集合数据执行任意读写或修改操作,导致严重的权限提升和数据安全风险。

攻击链分析

STEP 1
侦察
攻击者识别出目标站点使用了 PayloadCMS 并集成了 @delmaredigital/payload-puck 插件。
STEP 2
漏洞探测
攻击者向 /api/puck/ 路径下的端点(如 /api/puck/pages)发送未经身份验证的 HTTP 请求。
STEP 3
权限绕过
由于插件硬编码了 overrideAccess: true,服务器忽略了访问控制规则,直接处理请求并返回数据或执行操作。
STEP 4
数据窃取与篡改
攻击者成功读取敏感数据(C:H)或修改页面内容(I:H),造成严重影响。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL example (Vulnerable endpoint) target_url = "http://target-domain.com/api/puck/pages" # Send an unauthenticated request to exploit the access control bypass # The vulnerability allows bypassing collection-level access controls response = requests.get(target_url) if response.status_code == 200: print("[+] Vulnerability Confirmed! Access control bypassed.") print("[+] Leaked Data:", response.text) else: print("[-] Request failed or target not vulnerable.")

影响范围

@delmaredigital/payload-puck < 0.6.23

防御指南

临时缓解措施
如果无法立即升级插件,建议在 Web 应用防火墙(WAF)或反向代理层面实施严格的 IP 白名单策略,阻断对 /api/puck/* 路径的外部访问,仅允许受信任的内网地址调用。同时,应启用详细的日志审计,监控是否存在针对该路径的异常未授权访问尝试。

参考链接

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