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



























