OpenCV缓冲区溢出漏洞(CVE-2019-5063、CVE-2019-5064)

发布时间 2020-01-05



1.背景描述


思科Talos最近在OpenCV库中发现两个缓冲区溢出漏洞,攻击者可利用这些漏洞来导致堆损坏和潜在的代码执行。


2.漏洞列表


CVE ID  :   CVE-2019-5063、CVE-2019-5064

漏洞等级:    高危

CVSS评分:   8.8

CVSS Vector:  CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

影响范围:   OpenCV 4.1.0


3.漏洞详情


OpenCV(开源计算机视觉库)是一个主要针对实时计算机视觉编程功能的开源库。包括Google、Microsoft、Intel、IBM、Yahoo、Sony、Honda、Toyota和其他公司在内的主要科技公司都使用该库来开发面部识别技术、机器人技术、运动跟踪等解决方案。


CVE-2019-5063和CVE-2019-5064都是堆缓冲区溢出漏洞,存在于OpenCV 4.1.0的数据结构持久性功能中。该功能允许开发人员在磁盘上的文件中写入OpenCV数据结构以及从磁盘上的文件中检索OpenCV数据结构,文件类型可以是XML、YAML或JSON。攻击者可以分别通过恶意XML文件和JSON文件触发这两个漏洞。


CVE-2019-5063在该功能解析包含潜在字符实体引用的XML文件时触发,当遇到&符号时,API将继续解析字符,直到遇到分号为止。如果字符串与switch语句中的字符串不匹配,则数据被完整复制进缓冲区中。CVE-2019-5064是在该功能解析包含空字节的JSON文件时触发的,当遇到空字节时,直到该点的整个值均被复制进缓冲区中,但API并未检查JSON值是否会溢出目标缓冲区。


4.修复建议


OpenCV 4.2.0版本已经修复了这两个漏洞,建议用户进行更新。


5.参考链接


https://blog.talosintelligence.com/2020/01/opencv-buffer-overflow-jan-2020.html

https://nvd.nist.gov/vuln/detail/CVE-2019-5063

https://nvd.nist.gov/vuln/detail/CVE-2019-5064

https://securityaffairs.co/wordpress/95962/hacking/opencv-library-buffere-overflow.html