在 Musl 標準 C 函式庫中發現了一個漏洞 (CVE-2024-2961),導致在使用 iconv() 函數將特殊格式的文字從 EUC-KR 編碼轉換為 UTF-8 時發生緩衝區溢位。該漏洞從 musl 0.9.13 版本開始出現,並將在即將發布的 1.2.6 版本中修復(應在更新發布前使用修補程式)。該漏洞是由 libxml2 庫的維護人員在模糊測試期間發現的。
此漏洞可用於攻擊使用 Musl 程式庫編譯的、執行從外部來源接收的文字編碼的應用程式。透過在來源編碼為 EUC-KR 且目標編碼為 UTF-8 的應用程式中呼叫 iconv_open() 函數即可利用此漏洞。潛在易受攻擊的應用程式範例包括根據 MIME 類型標頭中指定的編碼(例如「text/plain; charset=EUC-KR」)重新編碼 XML、HTML 和電子郵件訊息的程式。例如,使用 libxml2 庫的程式執行類似的重新編碼。
這個漏洞是由兩個錯誤共同導致的。第一個錯誤與 EUC-KR 解碼器中缺乏對無效多位元組序列的適當檢查有關。第二個錯誤存在於 UTF-8 編碼器中,它不是為處理輸入解碼器可能傳回無效 Unicode 標量值這一事實而設計的。因此,處理「\xc8\x41」形式的序列會導致值被寫入超出分配緩衝區邊界的區域。
來源: opennet.ru
