cURL 首席開發人員 Daniel Stenberg 寫道:“錯誤報告 12604 已於 2023 年 12 月 28 日在curl 問題追蹤器上提交。”
標題說這個案例的問題已經很明確了。 flag -cacert 行為在 macOS 和 Linux 之間不一致 ,由吳躍東提交。
我們友好的記者演示了與 macOS 捆綁的curl 版本與完全從開源構建的curl 二進位檔案的行為有何不同。即使您在同一台 macOS 電腦上執行相同的curl 版本。
curl 命令列選項 –cacert 為使用者提供了一種告訴curl的方法: 這是一組確切的可信任 CA 證書 進行下一次傳輸時。 如果 TLS 伺服器無法提供可透過其證書集進行驗證的證書,它將失敗並傳回錯誤。 curl 的這種特定行為和功能已經建立了很多年(這個選項於 2000 年 12 月添加到curl 中),當然也是為了讓用戶知道他們正在與已知且可信的伺服器進行通訊而提供的。 這是 TLS 實際功能的一個非常基本的部分。
在 macOS 上將此命令列選項與curl 一起使用: Apple 發布的版本, 如果提供的 CA 憑證集驗證失敗,它似乎會回退並檢查系統 CA 儲存。 A 二次檢查 這是不請自來的,沒有記錄的,坦白說,這完全是一個驚喜。因此,如果使用者使用私有的、經過修剪的 CA 證書檔案執行檢查,且系統 CA 儲存包含可驗證伺服器的證書,則檢查不會失敗。
這是一個安全問題。 不應該通過的證書檢查突然通過了。
蘋果產品安全部門回應稱:“我們認為沒有必要在我們的平台上解決這個問題。” 「我不這麼認為,」斯坦伯格的部落格文章說。
Slashdot 的長期讀者 lee1 分享了這樣的反應:
當我發現 MacOS 在沒有通知的情況下用自己的非標準版本取代了其他類 Unix 世界使用的 Readline 庫時,我開始厭倦了 MacOS。這破壞了 gnuplot 和許多其他免費軟體…
蘋果仍在打破常規,這次對安全和隱私產生了嚴重影響。