Serious Vulnerabilities Patched in OpenCV Computer Vision Library
Two high-severity buffer overflow vulnerabilities patched in the OpenCV library could lead to arbitrary code execution.
OpenCV (Open Source Computer Vision Library) is an open source library that contains over 2,500 optimized computer vision and machine learning algorithms and which aims to accelerate the use of machine perception in commercial products.
The library is being used by Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota, and others in a broad range of facial recognition technology, robotics, motion tracking, and other applications. OpenCV has C++, Python, Java and MATLAB interfaces, along with Windows, Linux, Android and Mac OS support.
The release of OpenCV 4.2.0 at the end of December 2019 arrived with numerous improvements and fixes, including patches for two buffer overflow vulnerabilities that were discovered by security researchers at Cisco Talos.
Tracked as CVE-2019-5063 (CVSS score 8.8), the first issue is a heap buffer overflow vulnerability that resides in the data structure persistence functionality of OpenCV 4.1.0, which allows developers to write and retrieve OpenCV data structures to/from a file on disk.
According to Talos, when parsing an XML file containing a potential character entity reference and encountering the ampersand, the API continues to digest alphanumeric characters until a semicolon. If the string does not match any string in the switch statement, the data is copied to a buffer as is.
This allows an attacker to create a special XML file and trigger a buffer overflow, which could lead to multiple heap corruptions and potential code execution.
The second vulnerability, CVE-2019-5064 (CVSS score 8.8), also resides in the data structure persistence functionality of the library, and can be triggered using a specially crafted JSON file, Talos explains.
The issue is that, when parsing a JSON file and encountering a null byte, OpenCV copies to the buffer the entire value up to that point. Despite that, however, no check is performed to determine whether the JSON value will overflow the destination buffer.
Both vulnerabilities were found in OpenCV version 4.1.0 and were reported to the vendor in July 2019.