Agent Dart缺失证书验证检查 · CVE-2024-48915 · GitHub Advisory Database
漏洞详情
包管理器: Pub
受影响包: agent_dart
受影响版本: <= 1.0.0-dev.28
已修复版本: 1.0.0-dev.29
漏洞描述
在lib/agent/certificate.dart中的证书验证被发现了两个问题:
-
委托验证缺失范围检查: 在委托验证过程中(位于
_checkDelegation函数),canister_ranges未被验证。不检查canister_ranges的后果是,一个子网可以代表另一个子网签署容器响应。关于此实现的更多细节可参考互联网计算机规范,并可参考agent-rs中的实现方式。 -
证书时间戳未验证: 证书的时间戳(即
/time路径)未被验证,这意味着证书实际上没有过期时间。互联网计算机规范并未指定具体的过期时间,但给出了建议:“对于R.signatures和证书Cert中的时间戳,合理的过期时间为5分钟(类似于IC主网强制执行的最大入口过期时间)。委托需要至少一周的过期时间,因为IC主网仅在副本升级后(通常每周一次)才会刷新委托”。作为参考,可查看agent-rs中的实现。
额外问题: 看起来副本签名查询功能尚未实现。
技术参考
- GHSA ID:
GHSA-fmj7-7gfw-64pg - 修复提交:
AstroxNetwork/agent_dart@0d20068 - NVD漏洞详情:
https://nvd.nist.gov/vuln/detail/CVE-2024-48915 - 相关代码文件:
https://github.com/AstroxNetwork/agent_dart/blob/f50971dfae3f536c1720f0084f28afbcf5d99cb5/lib/agent/certificate.dart#L162https://github.com/AstroxNetwork/agent_dart/blob/main/lib/agent/certificate.dart
时间线
- 2024年10月15日: 由
AlexV525报告至AstroxNetwork/agent_dart仓库。 - 2024年10月15日: 由国家漏洞数据库发布。
- 2024年10月15日: 发布至GitHub Advisory Database并完成评审。
- 2025年1月23日: 最后更新。
严重性评级
严重等级: 高 CVSS总体评分: 7.6 / 10
CVSS v4基础指标
可利用性指标:
- 攻击向量: 网络
- 攻击复杂度: 高
- 攻击要求: 无
- 所需权限: 无
- 用户交互: 被动
脆弱系统影响指标:
- 机密性: 高
- 完整性: 高
- 可用性: 无
后续系统影响指标:
- 机密性: 无
- 完整性: 无
- 可用性: 无
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评分
漏洞被利用概率(未来30天内): 0.066% (处于第20百分位)
相关弱点
- CWE-295: 不正确的证书验证 - 产品未验证或错误地验证证书。
- CWE-347: 不正确的加密签名验证 - 产品未验证或错误地验证数据的加密签名。
标识符
- CVE ID: CVE-2024-48915
- GHSA ID: GHSA-fmj7-7gfw-64pg
源代码仓库
AstroxNetwork/agent_dart
致谢
- 报告者:
eduarddfinity - 修复开发者:
AlexV525