curl 8.4.0 正式發布,修復 SOCKS5 堆溢出漏洞,建議升級
curl 8.4.0 已正式發布,創始人 Daniel Stenberg(社區稱號 bagder)已提前一周預告了該版本 —— 修復高危安全漏洞,并稱該漏洞可能是很長一段時間以來 curl 遇到的最嚴重漏洞,同時影響到 libcurl 庫和 curl 工具。
根據介紹,這個高危漏洞是 SOCKS5 堆溢出漏洞 (heap buffer overflow),該漏洞 (CVE-2023-38545) 導致 curl 在 SOCKS5 代理握手過程中溢出基于堆的緩沖區。
有開發者解釋稱,該漏洞出現的場景是輸入的域名太長,從而導致內存溢出。當然前提條件是使用了 SOCKS5 代理。 兩種典型的攻擊場景如下:
- 某些程序里內置 libcurl,而允許外部用戶指定 socket5 代理以及輸入超長的域名,則可以發起攻擊
- 用戶在使用 curl 或者 libcurl 時,使用了 socket5 代理,并且 http 請求到惡意服務器,并且惡意服務器返回了 http 30x 跳轉,把用戶訪問目標指向一個超長域名從而導致溢出
另一個被評級為 "LOW" 的 CVE-2023-38546 漏洞是通過 none 文件進行 cookie 注入。
此漏洞允許攻擊者在滿足一系列特定條件并將 cookie 放入應用程序當前目錄中名為 "none" 的文件的情況下,使用 libcurl 在運行的程序中任意插入 cookie。