作者:默思編輯部 發布:2026-09-02
資安研究人員在2026年公開了libssh2函式庫中一個重大漏洞CVE-2026-55200的概念驗證程式碼,這個漏洞影響1.11.1及之前所有版本的libssh2,這套函式庫被廣泛嵌入curl、多款Git圖形化用戶端、PHP、備份工具,以及大量物聯網與嵌入式裝置軟體之中。
這個漏洞出在libssh2原始碼transport.c檔案中的ssh2_transport_read()函式,這個函式在處理接收到的SSH封包時,沒有對封包長度欄位(packet_length)設下適當的上限檢查——既沒有驗證是否符合RFC 4253規範定義的35000位元組上限,也沒有檢查是否超出函式庫本身的緩衝區限制,導致過大的數值可以一路傳遞到後續的運算邏輯中。
當攻擊者送出一個packet_length欄位為0xffffffff的惡意封包時,計算緩衝區大小的32位元運算會發生整數溢位,原本應該是一個極大的數值,經過溢位後變成一個很小的數字。libssh2因此配置了一塊按這個錯誤的小數值計算出來的緩衝區,但後續的程式碼卻試圖把完整、遠大於緩衝區大小的封包內容寫入其中,造成堆積記憶體毀損,成功利用後可在依賴這個函式庫的應用程式權限範圍內執行任意程式碼。這個問題被歸類為CWE-680(整數溢位導致緩衝區溢位)。
這個漏洞只影響libssh2作為用戶端使用的情境,攻擊者必須先讓受害者對攻擊者控制的伺服器發起SSH連線,才能觸發漏洞。這代表攻擊者需要透過DNS污染、中間人攻擊,或是先入侵一台受信任的主機,才能把受害者的連線導向惡意伺服器,並非完全不需要前置條件就能任意攻擊。
這個漏洞已在libssh2的官方修補提交中修正,但由於libssh2被大量嵌入其他軟體與裝置韌體中,實際的修補普及速度往往落後於原始碼層級的修補時間,這也是這類底層函式庫漏洞特別棘手的原因——終端使用者往往要等到上游軟體(例如curl、特定Git用戶端)發布新版本,才能真正取得修補。對於自行維護內部工具鏈或韌體映像的組織而言,建議主動盤點是否有直接或間接依賴libssh2的元件,不要被動等待上游通知。
底層網路函式庫的安全稽核與供應鏈風險評估,是資安領域持續存在的剛性需求,熟悉C語言記憶體安全問題與逆向工程分析能力的資安研究人員在這個領域一直供不應求。