LibTIFF:allocation failed in _TIFFmalloc
Description
LibTIFF This software provides support for the Tag Image File Format (TIFF), a widely used format for storing image data. The latest version of the TIFF specification is available on-line in several different formats.
A memory allocation failed was found in function _TIFFmalloc in tif_unix.c,which allows attackers to cause a denial of service via a crafted file.
#tiff2pdf $FILE -o out.pdf
failed to allocate
==8088==ERROR: AddressSanitizer failed to allocate 0x7800e3000 (32213184512)
bytes of LargeMmapAllocator (error code: 12)
==8088==Process memory map follows:
0x000000400000-0x000000548000
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7_build/bin/tiff2pdf
0x000000747000-0x000000748000
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7_build/bin/tiff2pdf
0x000000748000-0x000000760000
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7_build/bin/tiff2pdf
0x00007fff7000-0x00008fff7000
0x00008fff7000-0x02008fff7000
0x02008fff7000-0x10007fff8000
0x600000000000-0x602000000000
0x602000000000-0x602000010000
0x602000010000-0x603000000000
0x603000000000-0x603000010000
0x603000010000-0x604000000000
0x604000000000-0x604000010000
0x604000010000-0x606000000000
0x606000000000-0x606000010000
0x606000010000-0x60c000000000
0x60c000000000-0x60c000010000
0x60c000010000-0x611000000000
0x611000000000-0x611000010000
0x611000010000-0x615000000000
0x615000000000-0x615000020000
0x615000020000-0x616000000000
0x616000000000-0x616000020000
0x616000020000-0x619000000000
0x619000000000-0x619000020000
0x619000020000-0x61a000000000
0x61a000000000-0x61a000020000
0x61a000020000-0x61d000000000
0x61d000000000-0x61d000020000
0x61d000020000-0x61f000000000
0x61f000000000-0x61f000020000
0x61f000020000-0x624000000000
0x624000000000-0x624000020000
0x624000020000-0x631000000000
0x631000000000-0x631000030000
0x631000030000-0x640000000000
0x640000000000-0x640000003000
0x7f53752f4000-0x7f5376100000
0x7f5376200000-0x7f5376300000
0x7f53763e1000-0x7f5378733000
0x7f5378733000-0x7f5378749000 /usr/local/lib64/libgcc_s.so.1
0x7f5378749000-0x7f5378948000 /usr/local/lib64/libgcc_s.so.1
0x7f5378948000-0x7f5378949000 /usr/local/lib64/libgcc_s.so.1
0x7f5378949000-0x7f537894a000 /usr/local/lib64/libgcc_s.so.1
0x7f537894a000-0x7f5378abb000
/home/haojun/Downloads/software/gcc-6.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
0x7f5378abb000-0x7f5378cbb000
/home/haojun/Downloads/software/gcc-6.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
0x7f5378cbb000-0x7f5378cc5000
/home/haojun/Downloads/software/gcc-6.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
0x7f5378cc5000-0x7f5378cc7000
/home/haojun/Downloads/software/gcc-6.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
0x7f5378cc7000-0x7f5378ccb000
0x7f5378ccb000-0x7f5378ce2000 /usr/lib64/libpthread-2.17.so
0x7f5378ce2000-0x7f5378ee1000 /usr/lib64/libpthread-2.17.so
0x7f5378ee1000-0x7f5378ee2000 /usr/lib64/libpthread-2.17.so
0x7f5378ee2000-0x7f5378ee3000 /usr/lib64/libpthread-2.17.so
0x7f5378ee3000-0x7f5378ee7000
0x7f5378ee7000-0x7f5378eee000 /usr/lib64/librt-2.17.so
0x7f5378eee000-0x7f53790ed000 /usr/lib64/librt-2.17.so
0x7f53790ed000-0x7f53790ee000 /usr/lib64/librt-2.17.so
0x7f53790ee000-0x7f53790ef000 /usr/lib64/librt-2.17.so
0x7f53790ef000-0x7f53790f1000 /usr/lib64/libdl-2.17.so
0x7f53790f1000-0x7f53792f1000 /usr/lib64/libdl-2.17.so
0x7f53792f1000-0x7f53792f2000 /usr/lib64/libdl-2.17.so
0x7f53792f2000-0x7f53792f3000 /usr/lib64/libdl-2.17.so
0x7f53792f3000-0x7f53794a9000 /usr/lib64/libc-2.17.so
0x7f53794a9000-0x7f53796a9000 /usr/lib64/libc-2.17.so
0x7f53796a9000-0x7f53796ad000 /usr/lib64/libc-2.17.so
0x7f53796ad000-0x7f53796af000 /usr/lib64/libc-2.17.so
0x7f53796af000-0x7f53796b4000
0x7f53796b4000-0x7f53797b4000 /usr/lib64/libm-2.17.so
0x7f53797b4000-0x7f53799b4000 /usr/lib64/libm-2.17.so
0x7f53799b4000-0x7f53799b5000 /usr/lib64/libm-2.17.so
0x7f53799b5000-0x7f53799b6000 /usr/lib64/libm-2.17.so
0x7f53799b6000-0x7f53799cb000 /usr/lib64/libz.so.1.2.7
0x7f53799cb000-0x7f5379bca000 /usr/lib64/libz.so.1.2.7
0x7f5379bca000-0x7f5379bcb000 /usr/lib64/libz.so.1.2.7
0x7f5379bcb000-0x7f5379bcc000 /usr/lib64/libz.so.1.2.7
0x7f5379bcc000-0x7f5379c0f000 /usr/lib64/libjpeg.so.62.1.0
0x7f5379c0f000-0x7f5379e0f000 /usr/lib64/libjpeg.so.62.1.0
0x7f5379e0f000-0x7f5379e10000 /usr/lib64/libjpeg.so.62.1.0
0x7f5379e10000-0x7f5379e11000 /usr/lib64/libjpeg.so.62.1.0
0x7f5379e11000-0x7f5379e21000
0x7f5379e21000-0x7f5379e46000 /usr/lib64/liblzma.so.5.2.2
0x7f5379e46000-0x7f537a045000 /usr/lib64/liblzma.so.5.2.2
0x7f537a045000-0x7f537a046000 /usr/lib64/liblzma.so.5.2.2
0x7f537a046000-0x7f537a047000 /usr/lib64/liblzma.so.5.2.2
0x7f537a047000-0x7f537a16a000 /usr/local/lib/libasan.so.3
0x7f537a16a000-0x7f537a36a000 /usr/local/lib/libasan.so.3
0x7f537a36a000-0x7f537a36d000 /usr/local/lib/libasan.so.3
0x7f537a36d000-0x7f537a370000 /usr/local/lib/libasan.so.3
0x7f537a370000-0x7f537afe2000
0x7f537afe2000-0x7f537b002000 /usr/lib64/ld-2.17.so
0x7f537b013000-0x7f537b043000
0x7f537b043000-0x7f537b0c6000
0x7f537b0c6000-0x7f537b1ab000
/home/haojun/Downloads/imagetemplate/zzuftest_tif/1348-pc260001.tif
0x7f537b1ab000-0x7f537b1e8000
0x7f537b1e8000-0x7f537b201000
0x7f537b201000-0x7f537b202000 /usr/lib64/ld-2.17.so
0x7f537b202000-0x7f537b203000 /usr/lib64/ld-2.17.so
0x7f537b203000-0x7f537b204000
0x7ffee8906000-0x7ffee8927000 [stack]
0x7ffee89e2000-0x7ffee89e4000 [vdso]
0xffffffffff600000-0xffffffffff601000 [vsyscall]
==8088==End of process memory map.
==8088==AddressSanitizer CHECK failed:
../../../../libsanitizer/sanitizer_common/sanitizer_common.cc:180 "((0 &&
"unable to mmap")) != (0)" (0x0, 0x0)
#0 0x7f537a111d4d in AsanCheckFailed
../../../../libsanitizer/asan/asan_rtl.cc:65
#1 0x7f537a117993 in __sanitizer::CheckFailed(char const*, int, char
const*, unsigned long long, unsigned long long)
../../../../libsanitizer/sanitizer_common/sanitizer_common.cc:157
#2 0x7f537a117b7d in __sanitizer::ReportMmapFailureAndDie(unsigned long,
char const*, char const*, int)
../../../../libsanitizer/sanitizer_common/sanitizer_common.cc:180
#3 0x7f537a121582 in __sanitizer::MmapOrDie(unsigned long, char const*)
../../../../libsanitizer/sanitizer_common/sanitizer_posix.cc:120
#4 0x7f537a06c40d in
__sanitizer::LargeMmapAllocator<__asan::AsanMapUnmapCallback>::Allocate(__sanitizer::AllocatorStats*,
unsigned long, unsigned long)
../../../../libsanitizer/sanitizer_common/sanitizer_allocator.h:1031
#5 0x7f537a06c40d in
__sanitizer::CombinedAllocator<__sanitizer::SizeClassAllocator64<105553116266496ul,
4398046511104ul, 0ul, __sanitizer::SizeClassMap<17ul, 128ul, 16ul>,
__asan::AsanMapUnmapCallback>,
__sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator64<105553116266496ul,
4398046511104ul, 0ul, __sanitizer::SizeClassMap<17ul, 128ul, 16ul>,
__asan::AsanMapUnmapCallback> >,
__sanitizer::LargeMmapAllocator<__asan::AsanMapUnmapCallback>
>::Allocate(__sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator64<105553116266496ul,
4398046511104ul, 0ul, __sanitizer::SizeClassMap<17ul, 128ul, 16ul>,
__asan::AsanMapUnmapCallback> >*, unsigned long, unsigned long, bool, bool)
../../../../libsanitizer/sanitizer_common/sanitizer_allocator.h:1300
#6 0x7f537a06c40d in __asan::Allocator::Allocate(unsigned long, unsigned
long, __sanitizer::BufferedStackTrace*, __asan::AllocType, bool)
../../../../libsanitizer/asan/asan_allocator.cc:366
#7 0x7f537a06c40d in __asan::asan_malloc(unsigned long,
__sanitizer::BufferedStackTrace*)
../../../../libsanitizer/asan/asan_allocator.cc:716
#8 0x7f537a108b95 in __interceptor_malloc
../../../../libsanitizer/asan/asan_malloc_linux.cc:63
#9 0x507dd3 in _TIFFmalloc
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7/libtiff/tif_unix.c:316
#10 0x40fbab in t2p_readwrite_pdf_image
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7/tools/tiff2pdf.c:2445
#11 0x42c71c in t2p_write_pdf
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7/tools/tiff2pdf.c:5549
#12 0x404386 in main
/home/haojun/Downloads/testopensourcecode/tiff-4.0.7/tools/tiff2pdf.c:808
#13 0x7f5379314b34 in __libc_start_main (/lib64/libc.so.6+0x21b34)
#14 0x402b28 (/home/haojun/Downloads/testopensourcecode/tiff-4.0.7_build/bin/tiff2pdf+0x402b28)
Affected version:4.0.7Fixed version:N/ACommit fix:N/ACredit: ADLab of Venustech.CVE:N/AReproducer:https://github.com/bestshow/p0cs/blob/master/allocate-failed-in-tiff2pdf.tifTimeline:2017-04-20:bug discovered and reported upstream bugzilla2017-06-21:blog post about the issuePermalink:http://somevulnsofadlab.blogspot.com/2017/06/libtiffallocation-failed-in-tiffmalloc.html
评论
发表评论