Tinyproxy曝出嚴重漏洞,影響全球52000台主機

FreeBuf 2024-05-07 14:50:24

近日,攻擊面管理公司 Censys 分享了一組數據:截至 2024 年 5 月 3 日,在90310台主機中,有 52000 台(約占 57%)運行著有漏洞的 Tinyproxy 版本。

這些可能受到漏洞影響的主機分布于美國(32846 台)、韓國(18358 台)、中國(7808 台)、法國(5208 台)和德國(3680 台)。

該漏洞是HTTP/HTTPS代理工具中一個未修補的重要安全漏洞,被追蹤爲 CVE-2023-49606,CVSS 得分爲 9.8,Cisco Talos 將其描述爲一個影響 1.10.0 和 1.11.1 版本(即最新版本)的免用漏洞。

Talos在上周的一份報告中提到:攻擊者可通過精心構造的HTTP頭觸發先前釋放內存的重複使用,導致內存破壞且可能導致遠程代碼執行。攻擊者需要發送未經身份驗證的HTTP請求以觸發此漏洞。

換句話說,未經身份驗證的威脅行爲者可以發送特制的 HTTP 連接頭,從而引發內存破壞,導致遠程代碼執行。

Tinyproxy 是一個輕量級的開源 HTTP 代理守護程序,專注于簡單性和效率。根據 HTTP 規範,客戶端提供的標頭表示代理在最終 HTTP 請求中必須刪除的 HTTP 標頭列表。代理從請求中刪除這些 HTTP 標頭,向遠程服務器執行請求,並將響應發送回客戶端。Tinyproxy 在函數中正是這樣做的:

首先,我們應該注意到客戶端發送的 HTTP 標頭駐留在鍵值存儲中。該代碼搜索 和 標頭,並在 (1) 處獲取它們的值,如前所述,這是一系列要刪除的 HTTP 標頭。客戶端列出的每個 HTTP 標頭在 (3) 處被刪除。從本質上講,和 標頭值中的每個 HTTP 標頭都用作從 中刪除的鍵。最後,在 (4) 處,HTTP 標頭本身被刪除。

在函數中,我們看到:

對于具體提供的,其哈希值計算爲 (5)。使用哈希值,在 (6) 處檢索並釋放鍵值的指針。最後,鍵本身從(7)的哈希圖中刪除。

現在考慮一下當客戶端發送 HTTP 標頭時會發生什麽。出于演示目的,我們將它們區分爲。在 (1) 處檢索標頭的值,這當然是 。在 (3) 處,該值用作 處的變量。在(5)處計算字符串的哈希值,與完全相同。請注意,哈希值也不區分大小寫。在 (6) 處,哈希用于檢索和釋放 HTTP 標頭值的指針,即 。因此,此時代碼已釋放了 的內存。在 (7) 處,現在包含過時指針的變量被重用,從而導致釋放後使用方案。

很明顯,此漏洞可用于執行內存損壞並獲得代碼執行權限。

去年 12 月 22 日,塔洛斯公司報告了這一漏洞,並發布了該漏洞的概念驗證(PoC),描述了如何利用解析 HTTP 連接的問題來觸發崩潰,並在某些情況下執行代碼。

Tinyproxy 的維護者在上周末提交的一組文件中,指責 Talos 將報告發送到了一個已經不再使用的電子郵件地址,並補充說他們是在 2024 年 5 月 5 日被 Debian Tinyproxy 軟件包維護者發現的。

rofl0r 提到:沒有人在 GitHub 上提交問題,也沒有人在提及的 IRC 聊天中提到漏洞。如果在 Github 或 IRC 上報告了該問題,該漏洞會在一天內得到修複。該公司建議用戶在最新版本發布後及時更新。

參考來源:

Critical Tinyproxy Flaw Opens Over 50,000 Hosts to Remote Code Execution (thehackernews.com)

https://talosintelligence.com/vulnerability_reports/TALOS-2023-1889

0 阅读:29

FreeBuf

簡介:國內頭部網絡安全媒體。