Swift ASN.1解析漏洞分析:恶意BER/DER数据可导致崩溃

本文详细分析CVE-2025-0343漏洞,该漏洞存在于Swift ASN.1库中,当解析恶意构造的BER/DER数据时会导致程序崩溃,可能被用作拒绝服务攻击向量,特别是在处理TLS证书等场景中。

CVE-2025-0343:Swift ASN.1解析恶意BER/DER数据时崩溃漏洞

漏洞详情

包名称: swift
包地址: github.com/apple/swift-asn1 (Swift)

受影响版本: <= 1.3.0
已修复版本: 1.3.1

漏洞描述

Swift ASN.1在解析某些BER/DER结构时会发生崩溃。此崩溃是由ASN.1库本身的混淆引起的,该库假设某些对象只能以构造形式或原始形式提供,如果该约束未满足,将触发preconditionFailure。

重要的是,这些约束在DER中实际上需要为真,但在早期节点解析器端并未强制执行此正确性,因此在解码过程中依赖该假设是不正确的,而这正是该库所做的。

当解析任何DER/BER格式对象时,都可能触发这些崩溃。这里不存在内存安全问题:崩溃是由Swift运行时优雅处理的。此漏洞的影响是,在解析来自未知源的BER/DER数据时(例如解析TLS证书时),可能被用作拒绝服务攻击向量。

特别感谢@baarde报告此问题并提供修复。

参考信息

漏洞信息

严重程度: 低
EPSS评分: 0.143% (第35百分位)

弱点类型: CWE-228 - 对语法无效结构的处理不当

产品未处理或错误处理未按照相关规范在语法上格式正确的输入。

CVE ID: CVE-2025-0343
GHSA ID: GHSA-w8xv-rwgf-4fwh

源代码: apple/swift-asn1

致谢: baarde (报告者)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计