[prev in list] [next in list] [prev in thread] [next in thread]
List: oss-security
Subject: [oss-security] libtiff: Heap-based buffer overflow bug in pal2rgb(pal2rgb.c)
From: 백정운 <jeongun.baek () gmail ! com>
Date: 2017-11-30 10:41:03
Message-ID: EC646F2B-8F97-4B77-AE45-9462445D1B6F () gmail ! com
[Download RAW message or body]
Hi all,
A heap-based buffer overflow flaw was found in pal2rgb. A malicious user can manipulate the \
heap memory of a process using COLORMAP, Image Width, and Image Length value of a TIFF \
document.
http://bugzilla.maptools.org/show_bug.cgi?id=2750 \
<http://bugzilla.maptools.org/show_bug.cgi?id=2750>
The ASAN debug information is below:
/tools/pal2rgb poc.tiff /dev/null
TIFFFetchNormalTag: Warning, IO error during reading of "XResolution"; tag
ignored.
TIFFFetchNormalTag: Warning, IO error during reading of "YResolution"; tag
ignored.
sample.tiff: JPEG compression support is not configured.
TIFFSetField: /dev/null: Unknown pseudo-tag 65537.
TIFFSetField: /dev/null: Unknown pseudo-tag 65538.
sample.tiff: JPEG compression support is not configured.
=================================================================
==29649==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x611000009fe1 at pc 0x0000004f3109 bp 0x7fff697434d0 sp 0x7fff697434c8
WRITE of size 1 at 0x611000009fe1 thread T0
#0 0x4f3108 (/home/vagrant/targets/asan/tt/tools/pal2rgb+0x4f3108)
#1 0x7f678dc0cf44 (/lib/x86_64-linux-gnu/libc.so.6+0x21f44)
#2 0x419ba5 (/home/vagrant/targets/asan/tt/tools/pal2rgb+0x419ba5)
0x611000009fe1 is located 0 bytes to the right of 225-byte region
[0x611000009f00,0x611000009fe1)
allocated by thread T0 here:
#0 0x4c3f08 (/home/vagrant/targets/asan/tt/tools/pal2rgb+0x4c3f08)
#1 0x4f2748 (/home/vagrant/targets/asan/tt/tools/pal2rgb+0x4f2748)
#2 0x7f678dc0cf44 (/lib/x86_64-linux-gnu/libc.so.6+0x21f44)
SUMMARY: AddressSanitizer: heap-buffer-overflow
(/home/vagrant/targets/asan/tt/tools/pal2rgb+0x4f3108)
Shadow bytes around the buggy address:
0x0c227fff93a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff93b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff93c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff93d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff93e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c227fff93f0: 00 00 00 00 00 00 00 00 00 00 00 00[01]fa fa fa
0x0c227fff9400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff9410: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff9420: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff9430: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff9440: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==29649==ABORTING
Affected version:
4.0.9
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic