StrongSwan IPsec 中的漏洞導致遠端程式碼執行

StrongSwan 是一種在 Linux、Android、FreeBSD 和 macOS 上使用的基於 IPSec 的 VPN 軟體包,存在漏洞 (CVE-2023-41913),攻擊者可利用該漏洞執行遠端程式碼。 這個漏洞是由於Charon-tkm 進程及其金鑰交換(IKE) 協定的TKMv2(可信任金鑰管理員)實作中的錯誤導致的,導致在處理特殊格式的DH (Diffie–Hellman) 方案值時出現緩衝區溢出。 此漏洞僅出現在使用 Charon-tkm 和 StrongSwan 版本(從 5.3.0 開始)的系統上。 該問題已在 StrongSwan 5.9.12 更新中修復。 為了修復5.3.x開始的分支中的漏洞,也準備了修補程式。

該錯誤是由於在將公共 Diffie-Hellman 值複製到堆疊上的固定大小緩衝區之前未檢查其大小而導致的。 可以透過發送未經身份驗證而處理的特製 IKE_SA_INIT 訊息來發起溢位。 在舊版的 StrongSwan 中,大小檢查是在 KE 負載處理程序(密鑰交換)中進行的,但在 5.3.0 版本中添加了更改,將公共值的檢查移至 DH 協議處理程序一側( Diffie -Hellman)並加入了通用函數來簡化檢查已知群組的正確性D.H. 由於疏忽,他們忘記向 Charon-tkm 進程添加新的檢查函數,該進程充當 IKE 進程和 TKM(可信任密鑰管理器)之間的代理,因此 memcpy() 函數包含未經檢查的值允許將最多512 位元組寫入10000 位元組的緩衝區資料。

來源: opennet.ru

添加評論