CVE-2016-3990: Buffer Overflow
An out-of-bounds write flaw was found in libtiff v4.0.6 when using tiffcp command to handle malicious tiff file. The vulnerability exists in function horizontalDifference8() An attacker could control the head data of next heap which contains presize field and size filed to result in DoS or potential code execution.
Vulnerable code:
Source info
============ 1082 wp += n + stride - 1; / point to last one / 1083 ip += n + stride - 1; / point to last one / 1084 n -= stride; 1085 while (n > 0) { 1086 REPEAT(stride, wp[0] = CLAMP(ip[0]); 1087 wp[stride] -= wp[0]; 1088 wp[stride] &= mask; 1089 wp--; ip--) 1090 n -= stride; 1091 } 1092 REPEAT(stride, wp[0] = CLAMP(ip[0]); wp--; ip--)
References:
http://seclists.org/oss-sec/2016/q2/57
Upstream bug:
http://bugzilla.maptools.org/showbug.cgi?id=2544
Other sources
Heap-based buffer overflow in the horizontalDifference8 function in tifpixarlog.c in LibTIFF 4.0.6 and earlier allows remote attackers to cause a denial of service (crash) or execute arbitrary code via a crafted TIFF image to tiffcp.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2016-3990?
CVE-2016-3990 is classified as a high-severity vulnerability due to its potential for causing denial of service and other risks.
How do I fix CVE-2016-3990?
To fix CVE-2016-3990, update to libtiff version 4.1.0+git191117-2~deb10u4 or higher.
Which software is affected by CVE-2016-3990?
CVE-2016-3990 affects libtiff versions up to and including 4.0.6 and specific Oracle VM Server versions.
What type of vulnerability is CVE-2016-3990?
CVE-2016-3990 is an out-of-bounds write vulnerability that can be exploited through malicious TIFF files.
Can CVE-2016-3990 lead to arbitrary code execution?
While CVE-2016-3990 primarily results in denial of service, its exploitation could potentially lead to arbitrary code execution.