Agent Dart证书验证漏洞深度解析

本文详细分析了Agent Dart库中存在的证书验证漏洞CVE-2024-48915,包括委托验证中未检查canister_ranges和时间戳验证缺失等问题,这些安全缺陷可能导致子网冒充和证书无限期有效等严重风险。

Agent Dart证书验证漏洞分析

漏洞概述

Agent Dart库在证书验证过程中存在两个关键安全问题,影响了版本1.0.0-dev.28及之前的所有版本。

技术细节

委托验证缺陷

lib/agent/certificate.dart文件的_checkDelegation函数中,存在以下问题:

  • canister_ranges未验证:委托验证过程中未对canister_ranges进行检查,这可能导致一个子网能够冒充另一个子网签署canister响应。具体影响是允许子网越权代表其他子网进行操作。

时间戳验证缺失

  • 证书时间戳未验证:证书中的/time路径未被验证,导致证书实际上没有过期时间限制。根据IC规范建议:
    • 时间戳的合理过期时间应为5分钟
    • 委托需要至少一周的过期时间,因为IC主网通常每周才刷新一次委托

其他问题

  • 副本签名查询功能尚未实现

影响版本

  • 受影响版本:<= 1.0.0-dev.28
  • 已修复版本:1.0.0-dev.29

安全评分

  • 严重程度:高危
  • CVSS评分:7.6/10
  • EPSS评分:0.048%

相关弱点

  • CWE-295:不当证书验证
  • CWE-347:加密签名验证不当

参考链接

  • GHSA-fmj7-7gfw-64pg
  • AstroxNetwork/agent_dart@0d20068
  • NVD漏洞详情:CVE-2024-48915
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计