Agent Dart证书验证缺失:高严重性安全漏洞剖析

本文详细分析了CVE-2024-48915漏洞,该漏洞影响了AstroxNetwork的agent_dart库,其证书验证机制存在严重缺陷,可能导致子网冒充和证书无限期有效等安全问题。

Agent Dart 缺失证书验证检查 · CVE-2024-48915 · GitHub 安全公告数据库

漏洞详情

包信息

  • 包管理器: Pub
  • 包名: agent_dart
  • 受影响版本: <= 1.0.0-dev.28
  • 已修复版本: 1.0.0-dev.29

描述 在证书验证模块(位于 lib/agent/certificate.dart)中发现了两个问题:

  1. 在委托验证过程中(_checkDelegation 函数),未验证 canister_ranges。不检查 canister_ranges 的影响是,一个子网可以代表另一个子网签署容器响应。你可以在 IC 规范 找到更多详细信息。另外,可以参考 agent-rs 中的实现方式。
  2. 证书的时间戳(即 /time 路径)未被验证,这意味着证书实际上没有过期时间。IC 规范没有指定具体的过期时间,但给出了一些建议,引用如下:“时间戳在 R.signatures 和证书 Cert 中的合理过期时间是 5 分钟(类似于 IC 主网强制执行的最大允许入口过期时间)。委托要求过期时间至少为一周,因为 IC 主网仅在副本升级后(通常每周发生一次)才会刷新委托。” 可以参考 agent-rs 中的实现方式(这里这里)。

此外,似乎尚未实现副本签名查询功能。

参考链接

时间线

  • 报告者: eduarddfinity
  • 修复开发者: AlexV525
  • 发布至 AstroxNetwork/agent_dart: 2024年10月15日
  • 由国家漏洞数据库发布: 2024年10月15日
  • 发布至 GitHub 安全公告数据库: 2024年10月15日
  • 已审核: 2024年10月15日
  • 最后更新: 2025年1月23日

严重性

  • 等级: 高
  • CVSS 总体评分: 7.6 / 10

CVSS v4 基础指标

  • 攻击向量: 网络
  • 攻击复杂度: 高
  • 攻击要求: 无
  • 所需权限: 无
  • 用户交互: 被动
  • 脆弱系统影响指标:
    • 机密性: 高
    • 完整性: 高
    • 可用性: 无
  • 后续系统影响指标:
    • 机密性: 无
    • 完整性: 无
    • 可用性: 无
  • 向量字符串: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

EPSS 分数

  • 分数: 0.066% (第21百分位)
  • 说明: 此分数估计了该漏洞在未来30天内被利用的概率。数据由 FIRST 提供。

弱点

  • CWE-295: 不当的证书验证 - 产品未验证或错误地验证证书。
  • CWE-347: 加密签名验证不当 - 产品未验证或错误地验证数据的加密签名。

标识符

  • CVE ID: CVE-2024-48915
  • GHSA ID: GHSA-fmj7-7gfw-64pg

源代码

  • AstroxNetwork/agent_dart

致谢

  • 报告者: eduarddfinity
  • 修复开发者: AlexV525
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计