Bug 1492121 (CVE-2017-14348)
Summary: | CVE-2017-14348 libraw: Heap-based 1 byte buffer over-write in processCanonCameraInfo function in internal/dcraw_common.cpp | ||
---|---|---|---|
Product: | [Other] Security Response | Reporter: | Pedro Sampaio <psampaio> |
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
Status: | CLOSED WONTFIX | QA Contact: | |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | unspecified | CC: | alekcejk, carnil, extras-orphan, gwync, hobbes1069, jreznik, jridky, kde-sig, manisandro, mattdm, mattia.verga, nphilipp, rdieter, sebastian, siddharth.kde, than, thibault.north |
Target Milestone: | --- | Keywords: | Security |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libraw 0.18.4 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-06-08 03:25:32 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1492122, 1492124, 1492125, 1492126, 1492127, 1494406 | ||
Bug Blocks: |
Description
Pedro Sampaio
2017-09-15 14:05:39 UTC
Created LibRaw tracking bugs for this issue: Affects: epel-6 [bug 1492125] Affects: fedora-all [bug 1492122] Created dcraw tracking bugs for this issue: Affects: fedora-all [bug 1492123] Created libkdcraw tracking bugs for this issue: Affects: fedora-all [bug 1492126] Created mingw-LibRaw tracking bugs for this issue: Affects: fedora-all [bug 1492127] Created rawtherapee tracking bugs for this issue: Affects: fedora-all [bug 1492124] Hi I think the upstream commit referenced is not the correct one. For CVE-2017-14348 it should be https://github.com/LibRaw/LibRaw/commit/8303e74b0567806dd5f16fc39aab70fe928de1a2 Regards, Salvatore The patch I have includes those changes, except for this, which doesn't apply. --- dcraw/dcraw.c +++ dcraw/dcraw.c @@ -7071,6 +7071,7 @@ void CLASS setCanonBodyFeatures (unsigned id) void CLASS processCanonCameraInfo (unsigned id, uchar *CameraInfo, unsigned maxlen) { ushort iCanonLensID = 0, iCanonMaxFocal = 0, iCanonMinFocal = 0, iCanonLens = 0, iCanonCurFocal = 0, iCanonFocalType = 0; + if(maxlen<16) return; // too short, so broken CameraInfo[0] = 0; CameraInfo[1] = 0; switch (id) { @@ -8631,7 +8632,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer) { if (tag == 0x000d && len < 256000) // camera info { - CanonCameraInfo = (uchar*)malloc(len); + CanonCameraInfo = (uchar*)malloc(MAX(16,len)); fread(CanonCameraInfo, len, 1, ifp); lenCanonCameraInfo = len; } @@ -9496,7 +9497,7 @@ void CLASS parse_makernote (int base, int uptag) { if (tag == 0x000d && len < 256000) // camera info { - CanonCameraInfo = (uchar*)malloc(len); + CanonCameraInfo = (uchar*)malloc(MAX(16,len)); fread(CanonCameraInfo, len, 1, ifp); lenCanonCameraInfo = len; } Created LibRaw tracking bugs for this issue: Affects: epel-6 [bug 1494406] |