(CVE-2012-3401) libtiff (tiff2pdf): Heap-based buffer overflow due to improper initialization of T2P context struct pointer

Bug #1026438 reported by Karma Dorje
258
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tiff (Fedora)
Fix Released
Medium
tiff (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

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.

This issue has been assigned CVE-2012-3401.

Reference:
https://bugzilla.redhat.com/show_bug.cgi?id=837577

The relevant patch for the issue has been applied to upstream
libtiff-4.0.2 branch

CVE References

Revision history for this message
In , Jan (jan-redhat-bugs) wrote :

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

Revision history for this message
In , Tom (tom-redhat-bugs) wrote :

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/

Revision history for this message
In , Huzaifa (huzaifa-redhat-bugs) wrote :
Karma Dorje (taaroa)
visibility: private → public
Revision history for this message
In , mancha (mancha-redhat-bugs) wrote :

Hi. Do we have a similar situation at tools/tiff2pdf.c:3184?

Revision history for this message
In , Huzaifa (huzaifa-redhat-bugs) wrote :

(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

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Why do you keep opening all these bugs, when security updates aren't tracked in bugs?

Revision history for this message
In , Tom (tom-redhat-bugs) wrote :

(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?

Revision history for this message
In , mancha (mancha-redhat-bugs) wrote :

(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 }

Revision history for this message
In , Tom (tom-redhat-bugs) wrote :

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.

Revision history for this message
In , Huzaifa (huzaifa-redhat-bugs) wrote :

Created libtiff tracking bugs for this issue

Affects: fedora-all [bug 841736]

Revision history for this message
In , Fedora (fedora-redhat-bugs) wrote :

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.

Revision history for this message
Tyler Hicks (tyhicks) wrote :

This is tracked in the CVE tracker. Stable releases have been updated:

http://people.canonical.com/~ubuntu-security/cve/2012/CVE-2012-3401.html

Changed in tiff (Ubuntu):
status: New → Fix Released
Revision history for this message
In , Fedora (fedora-redhat-bugs) wrote :

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.

Revision history for this message
In , Jan (jan-redhat-bugs) wrote :

This issue affects the versions of the libtiff package, as shipped with Red Hat Enterprise Linux 5 and 6.

Revision history for this message
In , Jan (jan-redhat-bugs) wrote :

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/.

Revision history for this message
In , Murray (murray-redhat-bugs) wrote :

Acknowledgements:

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

Revision history for this message
In , Huzaifa (huzaifa-redhat-bugs) wrote :

Created libtiff tracking bugs for this issue

Affects: fedora-all [bug 880907]

Revision history for this message
In , errata-xmlrpc (errata-xmlrpc-redhat-bugs) wrote :

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

Revision history for this message
In , Fedora (fedora-redhat-bugs) wrote :

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.

Revision history for this message
In , Fedora (fedora-redhat-bugs) wrote :

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.

Revision history for this message
In , Fedora (fedora-redhat-bugs) wrote :

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.

Changed in tiff (Fedora):
importance: Unknown → Medium
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.