cURL 创始人兼首席开发者 Daniel Stenberg 又对苹果“开炮”了,上周他发表文章指责苹果修改了 cURL 在 macOS 中使用某参数时的默认行为,此举会有可能引发安全问题。
具体来说,cURL 的 --cacert
参数为用户提供了一种方法,让用户在进行接下来的传输时告诉 cURL 这是要信任的 CA 证书集。如果 TLS 服务器无法对其进行验证,则 cURL 会运行失败并返回错误。
这项特性于 2000 年 12 月添加到 cURL,目的是为了让用户知道它与已知且可信的服务器进行通信。
然而,苹果在 macOS 上提供的 cURL 在这种情况下的处理方法是检查系统的 CA 仓库——即直接验证苹果在 macOS 指定的那组 CA 证书,而非开发者指定的 CA 证书。
正因如此,这可能会导致 TLS 服务器对 CA 证书的检查意外通过,从而引发安全问题。
该问题最初于 2023 年 12 月 28 日被报告。cURL作者 Daniel Stenberg 随后对此进行了调查,并于 2023 年 12 月 29 日将此问题报告给了苹果的产品安全团队。
https://github.com/curl/curl/issues/12604
然而,苹果在 2024 年 3 月 8 日回应称,他们的 OpenSSL (LibreSSL) 版本有意使用内置系统信任存储作为默认信任源,因此他们认为这不是需要在平台上解决的问题。
Daniel 不认可苹果的说法,他表示这种行为使 CA 证书验证在 macOS 上的 cURL 完全不可靠,并且与文档不一致,从而误导了用户。
由于这不是 cURL 的官方漏洞,因此 Daniel 尚未针对此问题发布 CVE 或任何内容。严格来说,这个问题甚至在 cURL 代码中也不存在。
延伸阅读:curl 作者吐槽苹果把他当做免费工具人