OpenCV暴严重安全漏洞
简介
OpenCV (Open Source Computer Vision Library,开源计算机视觉库)是一个基于BSD许可发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。OpenCV是由Intel在1999年开发的,目前由非盈利组织OpenCV.org负责维护。OpenCV主要关注实时计算机视觉应用,主要应用于面部识别、机器人、动作追踪和其他的机器学习应用,包括谷歌、微软、Intel、IBM、雅虎、索尼、宏达、Toyota等在内的大公司都在使用该计算机视觉库。
Cisco Talos研究人员在OpenCV库中发现2个严重的缓冲区溢出漏洞,攻击者利用这两个漏洞可以引发堆破坏并导致任意代码执行。这2个漏洞分别是CVE-2019-5063和 CVE-2019-5064,CVSS评分8.8分。
漏洞细节
CVE-2019-5063
CVE-2019-5063漏洞是一个缓冲区溢出漏洞,位于OpenCV 4.1.0版本的XML分析器中数据结构中。该函数允许开发者在或从硬盘的文件中写入或提取OpenCV数据结构,因此攻击者可以通过含有字符实体引用的伪造的XML文件来利用该漏洞,在遇到 &符号时,API就会继续分析字母数字字符知道遇到分号。如果字符串与switch语句中的任一字符串都不匹配,那么数据就会被复制到缓冲区中。
攻击者可以通过精心伪造的XML文件来触发该漏洞,引发缓冲区溢出,最终导致多个堆破坏和潜在的代码执行。
更多漏洞详情参见https://talosintelligence.com/vulnerability_reports/TALOS-2019-0852
CVE-2019-5064
CVE-2019-5064漏洞是OpenCV JSON分析器中的一个缓冲区溢出漏洞。在漏洞在处理含有空字节(null byte)的JSON文件时会触发漏洞,导致文件被复制到缓冲区。而且该库没有检查JSON值是否会覆写目的缓冲区。
攻击者可以利用精心伪造的JSON文件来触发该漏洞。
更多漏洞详情参见https://talosintelligence.com/vulnerability_reports/TALOS-2019-0853
漏洞影响和补丁
Talos测试确认漏洞只影响v4.1.0及以下版本,漏洞于2019年7月提交给了OpenCV。2019年12月发布的OpenCV 4.2.0版本中修复了这两个漏洞。