Agent Dart证书验证缺失导致的高危安全漏洞解析

本文详细分析了CVE-2024-48915漏洞,该漏洞存在于Agent Dart库的证书验证机制中,涉及两个关键的安全检查缺失问题,可能导致跨子网签名和证书无过期时间等严重后果。

Agent Dart 缺少证书验证检查 · CVE-2024-48915 · GitHub Advisory Database

漏洞详情

包管理器: pub 包名称: agent_dart (Pub) 受影响版本: <= 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 中是如何实现的(此处和此处)。

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

参考信息

发布时间线

  • AlexV525 于 2024年10月15日 发布至 AstroxNetwork/agent_dart
  • 国家漏洞数据库 (NVD) 于 2024年10月15日 发布
  • GitHub Advisory Database 于 2024年10月15日 发布
  • 已审查 于 2024年10月15日
  • 最后更新 于 2025年1月23日

严重性

CVSS 总体评分: 7.6 / 10

CVSS v4 基础指标

攻击向量 (AV): 网络 (N) 攻击复杂度 (AC): 高 (H) 攻击要求 (AT): 无 (N) 所需权限 (PR): 无 (N) 用户交互 (UI): 被动 (P)

漏洞系统影响指标: 机密性 (VC): 高 (H) 完整性 (VI): 高 (H) 可用性 (VA): 无 (N)

后续系统影响指标: 机密性 (SC): 无 (N) 完整性 (SI): 无 (N) 可用性 (SA): 无 (N)

CVSS:4.0 向量: 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% (第20百分位) 此分数估计了此漏洞在未来 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 设计