Agent Dart 证书验证漏洞深度解析
Agent Dart 缺失证书验证检查 · CVE-2024-48915
漏洞详情
包管理器: Pub
受影响版本: <= 1.0.0-dev.28
修复版本: 1.0.0-dev.29
漏洞描述
证书验证(位于 lib/agent/certificate.dart)被发现存在两个问题:
委托验证问题:在委托验证过程中(
_checkDelegation函数),未验证canister_ranges。不检查canister_ranges的影响是,一个子网可以代表另一个子网签署 canister 响应。更多详细信息可参考 IC 规范,也可参考 agent-rs 中的实现方式。时间戳验证问题:证书的时间戳(即
/time路径)未经验证,这意味着证书实际上没有过期时间。IC 规范没有指定具体的过期时间,但给出了一些建议:"对于 R.signatures 和证书 Cert 中的时间戳,合理的过期时间为 5 分钟(类似于 IC 主网强制执行的最大允许入口过期时间)。委托需要至少一周的过期时间,因为 IC 主网仅在副本升级后刷新委托,而副本升级通常每周发生一次"。可参考 agent-rs 中的实现方式(此处和此处)。
此外,似乎副本签名查询功能尚未实现。
参考资料
GHSA-fmj7-7gfw-64pg
AstroxNetwork/agent_dart@0d20068
https://nvd.nist.gov/vuln/detail/CVE-2024-48915
https://github.com/AstroxNetwork/agent_dart/blob/f50971dfae3f536c1720f0084f28afbcf5d99cb5/lib/agent/certificate.dart#L162
https://github.com/AstroxNetwork/agent_dart/blob/main/lib/agent/certificate.dart
安全评分
严重程度: 高
CVSS 总体评分: 7.6/10
CVSS v4 基础指标
可利用性指标:
攻击向量: 网络
攻击复杂度: 高
攻击要求: 无
所需权限: 无
用户交互: 被动
脆弱系统影响指标:
机密性: 高
完整性: 高
可用性: 无
弱点分类
CWE-295: 不正确的证书验证 - 产品未验证或错误验证证书
CWE-347: 加密签名验证不当 - 产品未验证或错误验证数据的加密签名
时间线
报告时间: 2024 年 10 月 15 日
GitHub 咨询数据库发布: 2024 年 10 月 15 日
最后更新: 2025 年 1 月 23 日
报告者: eduarddfinity
修复开发者: AlexV525 更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码
公众号二维码







评论