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 设计