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

文章详细分析了CVE-2025-0343漏洞,该漏洞存在于Swift ASN.1库(版本<=1.3.0)中,当解析特定构造的BER/DER数据时,会导致应用崩溃,可能被用作拒绝服务攻击向量,特别是在解析来自未知源的TLS证书等场景下。

CVE-2025-0343: Swift ASN.1 解析恶意构造的BER/DER数据时可导致崩溃

平台

  • GitHub Copilot

  • GitHub Spark

  • GitHub Models

  • GitHub Advanced Security

  • Actions

  • Codespaces

  • Code Review

  • Discussions

  • Code Search

漏洞详情

软件包: swift (github.com/apple/swift-asn1)

受影响版本: <= 1.3.0

已修复版本: 1.3.1

描述

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

重要的是,这些约束在DER中确实是必须满足的,但早期的节点解析器并未强制执行此正确性,因此依赖它在后续解码阶段(这正是该库所做的)是不正确的。

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

非常感谢 @baarde 报告此问题并提供修复。

参考

时间线

  • Lukasa 于 2025年1月14日 发布到 apple/swift-asn1
  • 2025年1月14日 发布至 GitHub Advisory Database
  • 2025年1月14日 审核通过
  • 2025年1月15日 由国家漏洞数据库发布
  • 2025年1月15日 最后更新

严重性: 低

EPSS 评分: 0.172% (第39百分位)

弱点

  • 弱点: CWE-228
  • 说明: 对语法无效结构的处理不当。产品未处理或错误处理了未按照相关规范语法良好形成的输入。

标识符

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

源代码: apple/swift-asn1

致谢

  • 报告者: baarde
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计