Check Point Research 在通訊軟體 WhatsApp 中發現了一個漏洞,此漏洞允許攻擊者從 WhatsApp 的內存中讀取敏感信息。WhatsApp 承認了這個問題,並在 2 月份發布了一個安全修復程序,但表示目前沒有證據表明該漏洞曾被濫用。
Whatsapp 被認為是全球最受歡迎的通訊軟體,每月有大約 20 億活躍用戶。但研究人員卻在發現了一個 Whatsapp 中的照片濾鏡功能相關的「越界讀寫漏洞」。此漏洞是當用戶打開包含惡意內容的照片文件的附件,然後嘗試應用濾鏡,將應用了濾鏡的照片發送回給攻擊者時觸發的。
Check Point 研究人員發現了漏洞後,於 2020 年 11 月 10 日將其告知了 WhatsApp。今年 2 月,WhatsApp 發布了 2.21.1.13 版本的修復程序。在原照片和使用了濾鏡的照片上添加了兩項新檢查。
每天都有約 550 億條消息通過 WhatsApp,約 45 億張照片和 10 億個視頻被共享。研究人員將研究重點放在 WhatsApp 處理和發送照片的方式上,從一些照片類型 bmp、ico、gif、jpeg 和 png下手,並使用他們在 Check Point 的 AFL 模糊測試實驗室來生成格式錯誤的文件。AFL 模糊器獲取一組輸入文件,並在一個稱為突變的過程中對它們進行各種修改,這會生成大量修改過的文件,然後將其用作目標程序的輸入。當被測試的程序崩潰時,這表示發現了一個新錯誤,可能是一個安全漏洞。
研究人員很快意識到某些照片無法發送,迫使團隊尋找其他方式來使用這些照片。他們選擇了照片濾鏡,因為它們需要大量計算並且是有可能導致崩潰的因素。
根據 Check Point 研究人員的說法,照片濾鏡涉及「讀取照片內容、操縱像素值並將數據寫入新的目標照片」,他們發現在精心製作的 GIF 文件上的各種濾鏡之間切換確實導致 WhatsApp 崩潰。
在研究人員繼續調查之前,他們向 WhatsApp 報告了這個問題,WhatsApp 為提供了這個漏洞的代號:CVE- 2020-1910 ——越界讀寫漏洞。這個問題的重要之處在於,鑑於一組非常獨特和復雜的情況,它可能會導致 WhatsApp 應用程序的敏感信息暴露。
研究人員有了根據 WhatsApp 的基於堆的越界讀寫,便對 libwhatsapp.so 庫進行了逆向工程,並使用調試器來分析崩潰的根本原因。他們發現該漏洞存在於 libwhatsapp.so 庫中的原生函數 applyFilterIntoBuffer() 中。崩潰的原因是 WhatsApp 假設目標照片和源照片具有相同的尺寸,並且特定大小的「惡意製作的原照片」可能導致越界內存訪問,從而導致崩潰。該漏洞的修復現在驗證照片格式等於 1,這意味著原照片和過濾器照片都必須採用 RGBA 格式。新修復還通過檢查照片的尺寸來驗證照片大小。
與任何科技產品一樣,用戶都應該讓他們的應用程序和操作系統保持在最新的狀態,在可用時下載更新,來避免因應用程式內的漏洞所導致的敏感數據外洩。