首页 网络安全 正文
  • 本文约2293字,阅读需11分钟
  • 22
  • 0

AutoGPT平台中的授权绕过漏洞CVE-2025-53944

摘要

栋科技漏洞库关注到AutoGPT平台的受影响版本的外部API中存在一个绕过授权漏洞,漏洞现已被追踪为CVE-2025-53944,CVSS评分7.7。

AutoGPT是一种创新的开源自主人工智能(AI)工具,其充分利用了OpenAI最新的文本生成模型,并实现与软件和在线服务进行无缝交互。

Auto GPT免费开源项目结合GPT-4和GPT-3.5技术,通过API创建完整的项目,用户只需提供AI名称、描述和五个目标就可以自己完成项目。

一、基本情况

Auto GPT相当于给基于GPT的模型一个内存和一个身体,用户可以把一项任务交给AI智能体,让它自主地提出一个计划,然后再执行计划。

Auto GPT还具有互联网访问、长期和短期内存管理、用于文本生成的GPT-4实例以及使用GPT-3.5进行文件存储和生成摘要等一系列功能。

AutoGPT平台中的授权绕过漏洞CVE-2025-53944

栋科技漏洞库关注到AutoGPT平台的受影响版本的外部API中存在一个绕过授权漏洞,漏洞现已被追踪为CVE-2025-53944,CVSS评分7.7。

二、漏洞分析

CVE-2025-53944漏洞存在于AutoGPT平台在v0.6.15及以下版本中,存在于外部API的get_graph_execution_results端点存在授权绕过漏洞。

该端点虽然可以正确验证请求用户对graph_id的访问即访问指定图形,但无法验证执行graph_exec_id参数的所有权,导致存在绕过可能性。

正常情况来说,该端点通过使用经过身份验证的用户的id调用get_graph()对graph_id参数进行适当的授权,确保用户拥有或有权访问该图。

但它随后使用用户提供的graph_exec_id直接查询执行数据而未验证该执行属于授权graph还是请求用户,内部API实现对两个参数的验证。

如此导致了允许经过身份验证的用户通过提供任意执行id来访问任何执行结果,也可以实现从其他用户的图形执行中直接去访问执行结果。

需要注意,内部API端点/graphs/{ graph _ id }/executions/{ graph _ exec _ id }实现了正确的授权模式,执行执行所有权验证和图关系验证。

若攻击者发现目标执行UUID,可从任何用户图形执行中访问敏感执行数据,如输入参数(API密钥和凭据)、输出结果和专有工作流逻辑。

三、源汇分析

Source: User-controlled graph_exec_id parameter in URL path /graphs/{graph_id}/executions/{graph_exec_id}/results
Call Chain:

get_graph_execution_results() function in autogpt_platform/backend/backend/server/external/routes/v1.py:115 processes external API request
graph_db.get_graph(graph_id, user_id=api_key.user_id) validates user access to graph_id (authorization passes for attacker's graph)
execution_db.get_node_executions(graph_exec_id) called with user-controlled execution ID at line 123
Database query in get_node_executions() at autogpt_platform/backend/backend/data/execution.py:728 with where clause {"agentGraphExecutionId": graph_exec_id} - no user validation
NodeExecutionResult.from_db(execution) constructs result objects containing victim's execution data
Sink: Response construction returns unauthorized execution data including victim's input parameters, output results, and workflow details in GraphExecutionResult structure

四、POC概念验证

1、先决条件

(1)拥有READ_GRAPH权限的有效API密钥

(2)访问至少一个图(自己的图或公共图)

(3)发现受害者的执行UUID(通过日志、错误消息等)

2、攻击步骤:

(1)获取有效的API密钥:

curl-X POST/API/API-keys-d'{“name”:“test”,“permissions”:[“READ_GRAPH”]}'

(2)通过侧通道或枚举发现受害者执行ID

(3)执行攻击:

curl -X GET \
  "https://platform.autogpt.co/api/graphs/ATTACKER_GRAPH_ID/executions/VICTIM_EXECUTION_UUID/results" \
  -H "X-API-Key: ATTACKER_API_KEY"

3、结果验证:

服务器验证对ATTACKER_GRAPH_ID的访问(成功);

从VICTIM_execution_UID返回的数据中可以看到,包含敏感输入/输出数据、API密钥和专有工作流信息的执行数据。

五、影响范围

AutoGPT <= v0.6.15

六、修复建议

AutoGPT >=  v0.6.16

七、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接