漏洞描述
curl 是用于在各種網絡協議之間傳輸數據的命令行工具,libcurl 用于提供處理網絡通信和數據傳輸的Api接口。curl 默認下載緩沖區為 102400 字節,但如果設置低于每秒 102400 字節,緩沖區大小會自動設置為更小的值。libcurl 下載緩沖區默認為 16KB,應用程序可通過 CURLOPT_BUFFERSIZE 選項設置其大小。
受影響版本中,libcurl對于Socks代理過程中解析的主機名長度未正確限制,使用 libcurl 的應用程序在未設置 CURLOPT_BUFFERSIZE 或將其設置小于 65541 時會造成堆緩沖區溢出;由于 curl 工具默認將 CURLOPT_BUFFERSIZE 設置為 100KB,因此除非用戶將速率通過 --limit-rate 限制設置為每秒小于 65541 字節,默認不受影響。
當用戶通過socks代理訪問攻擊者可控的地址時,如果攻擊者通過302跳轉等方式使得用戶解析訪問大于緩沖區長度的域名,可能造成拒絕服務,針對特定的平臺和軟件可能造成遠程代碼執行。
漏洞名稱 | libcurl Socks5 堆緩沖區溢出漏洞 |
---|---|
漏洞類型 | 堆緩沖區溢出 |
發現時間 | 2023-10-11 |
漏洞影響廣度 | 廣 |
MPS編號 | MPS-cpg0-9qk3 |
CVE編號 | CVE-2023-38545 |
CNVD編號 | - |
影響范圍
curl@[7.69.0, 8.4.0)
libcurl@[7.69.0, 8.4.0)
修復方案
不要將 CURLPROXY_SOCKS5_HOSTNAME 代理與curl一起使用
不要將代理環境變量設置為socks5h://
官方已發布補?。?a href="http://www.doharose.com/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fcurl%2Fcurl%2Fcommit%2F4a4b63daaa" target="_blank">https://github.com/curl/curl/commit/4a4b63daaa
升級libcurl到 8.4.0 或更高版本
升級curl到 8.4.0 或更高版本
參考鏈接
https://www.oscs1024.com/hd/MPS-cpg0-9qk3
https://nvd.nist.gov/vuln/detail/CVE-2023-38545
https://curl.se/docs/CVE-2023-38545.html
https://github.com/curl/curl/commit/4a4b63daaa
????
免費情報訂閱&代碼安全檢測
OSCS是國內首個開源軟件供應鏈安全社區,社區聯合開發者幫助全球頂級開源項目解決安全問題,并提供實時的安全漏洞情報,同時提供專業的代碼安全檢測工具為開發者免費使用。社區開發者可以通過配置飛書、釘釘、企業微信機器人獲取一手的情報。
免費代碼安全檢測工具: https://www.murphysec.com/?src=osc
免費情報訂閱: https://www.oscs1024.com/cm/?src=osc
具體訂閱方式詳見: https://www.oscs1024.com/docs/vuln-warning/intro/?src=osc