日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網

  • 公眾號
    • 汽車測試網

    • 在線課堂

    • 電車測試

CVE-2023-38545(漏洞分析與檢測方法)

2024-03-06 09:54:29·  來源:ACSRC  
 

 curl:curl是一個用于傳輸數據的命令行工具和庫,支持多種網絡協(xié)議,如HTTP、FTP、SMTP等。它是一個廣泛用于編程和自動化數據傳輸的工具。


    libcurl:libcurl是curl的C語言庫,允許開發(fā)人員在他們的應用程序中使用curl的功能。它是curl的核心組件。


    curl團隊于2023年10月11日發(fā)布curl的8.4.0版本。同時,他們還公開兩個漏洞:CVE-2023-38545和CVE-2023-38546


什么是CVE-2023-38545? 


該漏洞主要成因是在使用SOCKS5代理鏈接過程中造成的堆溢出。當Curl使用SOCKS5代理以便它解析地址時,主機名的最大長度為255字節(jié)。如果檢測到主機名超過255字節(jié),Curl將切換到本地主機解析地址,并將解析后的地址傳遞給代理。然而,由于程序bug,在建立延遲較高的 SOCKS5 鏈接過程中,此時主機解析地址可能會獲取錯誤的值,此時會把過長的主機名也復制到緩沖區(qū)中。


主機名來自于提供給Curl解析的url。目標緩沖區(qū)是libcurl 中基于堆的下載緩沖區(qū),緩沖區(qū)的默認大小為16kB,但可以由應用程序設置為不同的大小。Curl 工具默認將其設置為102400字節(jié),但如果 --limit-rate 設置低于102400字節(jié)/秒,則會將緩沖區(qū)大小設置為較小的值。libcurl提供了CURLOPT_BUFFERSIZE選項來更改下載緩沖區(qū)的大小。libcurl 在 URL 中接受最多達65535字節(jié)的主機名。


要發(fā)生溢出,需要一個足夠慢的SOCKS5連接來觸發(fā)局部變量bug,并且客戶端使用的主機名長于下載緩沖區(qū)。通過惡意的 HTTPS 服務器進行重定向到一個特別設計的 URL。某些較老的服務器延遲可能足以觸發(fā)此漏洞。堆溢出僅可能在未設置 CURLOPT_BUFFERSIZE 或將其設置為小于 65541的情況下發(fā)生。


 在libcurl中,導致使用遠程主機名的SOCKS5的選項為:將CURLOPT_PROXYTYPE設置為CURLPROXY_SOCKS5_HOSTNAME類型,或者將CURLOPT_PROXY或 CURLOPT_PRE_PROXY 設置為使用socks5h://方案。其中一個代理配置環(huán)境變量可以設置為使用socks5h://方式,例如http_proxy、HTTPS_PROXY或 ALL_PROXY。在Curl工具中,導致使用遠程主機名的SOCKS5的選項為:--socks5-hostname,或者將--proxy或--preproxy設置為使用socks5h:// 方式。


看了下源碼,罪魁禍首在這里:



hostname 來自命令行的輸入,想弄多長都行。


socksreq是預分配的空間,承受不住任意長度的輸入。


漏洞利用


 執(zhí)行如下命令




修復建議


Linux / MacOS




Windows



修復建議 


升級 curl 和 libcurl 到 8.4.0 或更高版本


避免將 CURLPROXY_SOCKS5_HOSTNAME 代理與 curl 一起使用


避免將代理環(huán)境變量設置為 socks5h://


分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25