Bug 837577 (CVE-2012-3401) - CVE-2012-3401 libtiff (tiff2pdf): Heap-based buffer overflow due to improper initialization of T2P context struct pointer
Summary: CVE-2012-3401 libtiff (tiff2pdf): Heap-based buffer overflow due to improper ...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2012-3401
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 841736 880907 885308 885309 885310 885311
Blocks: 837581
TreeView+ depends on / blocked
 
Reported: 2012-07-04 10:01 UTC by Jan Lieskovsky
Modified: 2023-05-13 01:55 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-12-21 08:39:43 UTC
Embargoed:


Attachments (Terms of Use)
libtiff-4.0.2-tiff2pdf.patch (436 bytes, patch)
2012-07-05 17:42 UTC, Tom Lane
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2012:1590 0 normal SHIPPED_LIVE Moderate: libtiff security update 2012-12-19 02:06:23 UTC

Description Jan Lieskovsky 2012-07-04 10:01:43 UTC
A heap-based buffer overflow flaw was found in the way tiff2pdf, a TIFF image to a PDF document conversion tool, of libtiff, a library of functions for manipulating TIFF (Tagged Image File Format) image format files, performed write of TIFF image content into particular PDF document file, when not properly initialized T2P context struct pointer has been provided by tiff2pdf (application requesting the conversion) as one of parameters for the routine performing the write. A remote attacker could provide a specially-crafted TIFF image format file, that when processed by tiff2pdf would lead to tiff2pdf executable crash or, potentially, arbitrary code execution with the privileges of the user running the tiff2pdf binary.


Issue found by: Huzaifa Sidhpurwala, Red Hat Security Response Team

Comment 15 Tom Lane 2012-07-18 15:13:42 UTC
I have pushed the patches attached to this BZ into upstream libtiff CVS.  They don't seem to have a cvsweb server, but instructions for anonymous CVS access are at http://www.remotesensing.org/libtiff/

Comment 16 Huzaifa S. Sidhpurwala 2012-07-19 02:51:59 UTC
This is now public via:

http://seclists.org/oss-sec/2012/q3/88

Comment 18 mancha 2012-07-19 06:52:37 UTC
Hi. Do we have a similar situation at tools/tiff2pdf.c:3184?

Comment 19 Huzaifa S. Sidhpurwala 2012-07-19 08:32:32 UTC
(In reply to comment #16)
> This is now public via:
> 
> http://seclists.org/oss-sec/2012/q3/88

The above link is wrong, correct link is:
http://seclists.org/oss-sec/2012/q3/101

Comment 21 Tom Lane 2012-07-19 14:20:04 UTC
(In reply to comment #18)
> Hi. Do we have a similar situation at tools/tiff2pdf.c:3184?

This question is pretty content-free, since I have no idea what version of the file you're looking at.  How about quoting code instead of expecting me to guess?

Comment 22 mancha 2012-07-19 14:49:47 UTC
(In reply to comment #21)
> This question is pretty content-free, since I have no idea what version of
> the file you're looking at.  How about quoting code instead of expecting me
> to guess?

Taking my cues from your patch, I looked at v4.0.2.

Below is the extract from t2p_process_ojpeg_tables() which I referred to:

3159					t2p->t2p_error = T2P_ERR_ERROR;
3160					return(0);
3161			}
3162			if(!TIFFGetField(input, TIFFTAG_JPEGPOINTTRANSFORM, &pt)){
3163				TIFFError(TIFF2PDF_MODULE, 
3164					"Missing JPEGPointTransform field in OJPEG image %s", 
3165					TIFFFileName(input));
3166					t2p->t2p_error = T2P_ERR_ERROR;
3167				return(0);
3168			}
3169		}
3170		if(!TIFFGetField(input, TIFFTAG_YCBCRSUBSAMPLING, &h_samp, &v_samp)){
3171			h_samp=1;
3172			v_samp=1;
3173		}
3174		if(t2p->pdf_ojpegdata != NULL){
3175			_TIFFfree(t2p->pdf_ojpegdata);
3176			t2p->pdf_ojpegdata=NULL;
3177		} 
3178		t2p->pdf_ojpegdata = _TIFFmalloc(2048);
3179		if(t2p->pdf_ojpegdata == NULL){
3180			TIFFError(TIFF2PDF_MODULE, 
3181				"Can't allocate %u bytes of memory for t2p_process_ojpeg_tables, %s", 
3182				2048, 
3183				TIFFFileName(input));
3184			return(0);
3185		}

Comment 23 Tom Lane 2012-07-19 15:48:30 UTC
Yeah, you're right, that should set t2p_error --- and looking through the file, I found a similar oversight in t2p_write_pdf().  These cases do not have any security content though, because AFAICS nothing will crash if pdf_ojpegdata (or pdf_xrefoffsets in the other place) is left null.  You might get a bogus additional error message, and/or failure to exit(1) as desired, but no worse.

I've pushed those fixes into upstream CVS, so they will be in the next releases, but I don't think they should be considered part of the CVE issue.

Comment 24 Huzaifa S. Sidhpurwala 2012-07-20 05:18:13 UTC
Created libtiff tracking bugs for this issue

Affects: fedora-all [bug 841736]

Comment 25 Fedora Update System 2012-07-26 22:23:59 UTC
libtiff-3.9.6-2.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 26 Fedora Update System 2012-08-09 23:17:52 UTC
libtiff-3.9.6-2.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 28 Jan Lieskovsky 2012-08-16 14:38:35 UTC
This issue affects the versions of the libtiff package, as shipped with Red Hat Enterprise Linux 5 and 6.

Comment 29 Jan Lieskovsky 2012-08-29 14:38:09 UTC
Statement:

The Red Hat Security Response Team has rated this issue as having moderate security impact. A future libtiff package update may address this issue in Red Hat Enterprise Linux 5 and 6. For additional information, refer to the Issue Severity Classification: https://access.redhat.com/security/updates/classification/.

Comment 30 Murray McAllister 2012-10-03 04:23:33 UTC
Acknowledgements:

This issue was discovered by Huzaifa Sidhpurwala of the Red Hat Security Response Team.

Comment 31 Huzaifa S. Sidhpurwala 2012-11-28 06:12:06 UTC
Created libtiff tracking bugs for this issue

Affects: fedora-all [bug 880907]

Comment 33 errata-xmlrpc 2012-12-18 21:10:28 UTC
This issue has been addressed in following products:

  Red Hat Enterprise Linux 5
  Red Hat Enterprise Linux 6

Via RHSA-2012:1590 https://rhn.redhat.com/errata/RHSA-2012-1590.html

Comment 35 Fedora Update System 2012-12-31 03:23:46 UTC
libtiff-3.9.7-1.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 36 Fedora Update System 2012-12-31 03:25:55 UTC
libtiff-3.9.7-1.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 37 Fedora Update System 2013-01-12 00:27:14 UTC
libtiff-4.0.3-2.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.