Cisco Talos 的研究人員在 OpenCV 4.1.0 版中發現了兩個緩沖區溢出漏洞,分別爲 CVE-2019-5063 (CVSS評分8.8) 和 CVE-2019-5064 (CVSS評分8.8)。
OpenCV(開源計算機視覺庫)是由英特爾研究院于 1999 年開發的一個開放源代碼庫,其中包含 2500 多種優化的計算機視覺和機器學習算法,旨在加速在商業産品中機器感知技術的應用。該庫廣泛用于面部識別技術、機器人技術、運動跟蹤和其他應用程序中。OpenCV 可在 Windows、Linux、Android 和 Mac OS 等多種主流操作系統上使用。OpenCV 目前由非營利組織 OpenCV.org 運營。
包括谷歌、雅虎、微軟、英特爾、IBM、索尼、本田、豐田等在內的主要科技公司都使用該庫來開發面部識別技術、機器人技術、運動跟蹤和其他解決方案。
OpenCV 版本 4.1.0 的數據結構持久性功能中存在一個可利用的堆緩沖區溢出漏洞。特制的 JSON 文件可能會導致緩沖區溢出,從而導致多個堆損壞並可能執行代碼。
攻擊者可以提供特制文件來觸發此漏洞。
第一個漏洞 CVE-2019-5063 (CVSS得分8.8) 是堆緩沖區溢出漏洞,該漏洞駐留在 OpenCV 4.1.0 的數據結構持久性功能中,該漏洞使開發人員可以向/從 OpenCV 寫入和檢索 OpenCV 數據結構磁盤上的文件。
根據 Talos 的說法,當解析包含潛在字符實體引用的 XML 文件並遇到 “&” 字符時,API 會繼續提取字母數字字符,直到分號爲止。如果該字符串與 switch 語句中的任何字符串都不匹配,則將數據原樣複制到緩沖區中。
這使攻擊者可以創建特殊的 XML 文件並觸發緩沖區溢出,這可能導致多個堆損壞和潛在的代碼執行。
Talos 解釋說,第二個漏洞 CVE-2019-5064 (CVSS評分8.8) 也位于庫的數據結構持久性功能中,可以使用特制的 JSON 文件來觸發。
這兩個漏洞都在 OpenCV 4.1.0 版中發現,並于 2019 年 7 月報告給供應商。
2019 年 12 月底發布的 OpenCV 4.2.0 版本已經解決了這兩個緩沖區溢出漏洞。