Bug 1174851 (CVE-2014-8140)

Summary: CVE-2014-8140 unzip: out-of-bounds write issue in test_compr_eb() (oCERT-2014-011)
Product: [Other] Security Response Reporter: Tomas Hoger <thoger>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact: Frantisek Sumsal <fsumsal>
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: carnil, fsumsal, jaeshin, pstodulk, raysatiro, security-response-team, yozone
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
An integer underflow flaw, leading to a buffer overflow, was found in the way unzip uncompressed certain extra fields of a file. A specially crafted Zip archive could cause unzip to crash when the archive was tested with unzip's '-t' option.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-18 21:11:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1191118, 1196124, 1196125, 1196126, 1196127    
Bug Blocks: 1174865    
Description Flags
Upstream patch none

Description Tomas Hoger 2014-12-16 15:35:58 UTC
oCERT reports an unzip flaw discovered by Michele Spagnuolo, Google Security Team:

The write error shows a problem in extract.c:test_compr_eb(), which was not expecting an uncompressed size of zero for an EF_NTSD extra block.

Proposed changes:


extract.c:test_compr_eb() gets a new validity test.


Red Hat would like to thank oCERT for reporting these issues. oCERT acknowledges Michele Spagnuolo of the Google Security Team as the original reporter.

Comment 2 Tomas Hoger 2014-12-16 15:42:25 UTC
Created attachment 969621 [details]
Upstream patch

This seems to be the upstream fix mentioned in the comment 0.

Comment 4 Huzaifa S. Sidhpurwala 2014-12-22 15:49:05 UTC
External Reference:


Comment 5 Tomas Hoger 2015-02-10 12:36:54 UTC
Upstream patch in comment 2 does not address all related problems completely.  See CVE-2014-9636 / bug 1184985 to address issues identified by the oCERT-2014-011 test case.

The problem the patch in comment 2 addresses is an uncompressed data size of 0 specified in certain extra field blocks (such as EF_NTSD mentioned in the report, but other types were affected as well).  If a zip file indicated that uncompressed data size was 0, unzip skipped the check to ensure that there were still enough data in the current extra field block to hold compression data header.  When using STORE compression (i.e. data stored uncompressed), this led to integer underflow, resulting in memcpy() getting called with excessively large size argument, causing it to over-read and over-write input and output buffers and crash.  This is unlikely to allow code execution.

Affected code is only reached when running unzip in the test mode (unzip -t), but not when extracting zip archives.

Comment 6 Tomas Hoger 2015-02-10 13:37:08 UTC
Created unzip tracking bugs for this issue:

Affects: fedora-all [bug 1191118]

Comment 8 Fedora Update System 2015-02-16 03:25:45 UTC
unzip-6.0-20.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 9 Fedora Update System 2015-02-23 23:25:19 UTC
unzip-6.0-17.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Martin Prpič 2015-02-25 10:25:26 UTC

Red Hat Enterprise Linux 5 is now in Production 3 Phase of the support and maintenance life cycle. This has been rated as having Low security impact and is not currently planned to be addressed in future updates in Red Hat Enterprise Linux 5. For additional information, refer to the Red Hat Enterprise Linux Life Cycle: https://access.redhat.com/support/policy/updates/errata/

Comment 13 errata-xmlrpc 2015-03-18 18:59:13 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6
  Red Hat Enterprise Linux 7

Via RHSA-2015:0700 https://rhn.redhat.com/errata/RHSA-2015-0700.html