Package: jhead
Version: 3.00-7

Interger overflow while running jhead. There is an interger overflow in
exif.c line 530. When OffseVal=0xffff0014, ByteCount=0xffff,
ExifLength=0X13e, this check will be passed. So when executing strncpy
function it will lead to a segmentation fault. It may allow a remote
attacker to cause unspecified impact including denial-of-service attack.Deatil
log as follow:

zhang123@ubuntu:~/Desktop/jhead-3.00$ ./jhead ./testfile
ASAN:SIGSEGV
=================================================================
==21157==ERROR: AddressSanitizer: SEGV on unknown address
0x6130ffffde90 (pc 0x7efd4499e900 bp 0x7fffcbe95d50 sp 0x7fffcbe954d8
T0)
    #0 0x7efd4499e8ff in strnlen (/lib/x86_64-linux-gnu/libc.so.6+0x8b8ff)
    #1 0x7efd4505c4e2 in __interceptor_strncpy
(/usr/lib/x86_64-linux-gnu/libasan.so.2+0x764e2)
    #2 0x40efad in ProcessExifDir
(/home/zhang123/Desktop/jhead-3.00/jhead+0x40efad)
    #3 0x410399 in process_EXIF
(/home/zhang123/Desktop/jhead-3.00/jhead+0x410399)
    #4 0x40830d in ReadJpegSections.part.0
(/home/zhang123/Desktop/jhead-3.00/jhead+0x40830d)
    #5 0x4087dd in ReadJpegFile
(/home/zhang123/Desktop/jhead-3.00/jhead+0x4087dd)
    #6 0x4049f6 in ProcessFile
(/home/zhang123/Desktop/jhead-3.00/jhead+0x4049f6)
    #7 0x402575 in main (/home/zhang123/Desktop/jhead-3.00/jhead+0x402575)
    #8 0x7efd4493382f in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #9 0x403998 in _start (/home/zhang123/Desktop/jhead-3.00/jhead+0x403998)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ??:0 strnlen
==21157==ABORTING

This bug was found by Hanfang Zhang at Sichuan University. Request a
CVE ID. Thanks.

Attachment: testfile
Description: Binary data

Reply via email to