[Pkg-gtkpod-devel] Bug#858786: libplist: CVE-2017-6438
Salvatore Bonaccorso
carnil at debian.org
Mon Mar 27 04:45:29 UTC 2017
On Sun, Mar 26, 2017 at 09:37:32PM +0200, Salvatore Bonaccorso wrote:
> Source: libplist
> Version: 1.12+git+1+e37ca00-0.1
> Severity: important
> Tags: security patch upstream
> Forwarded: https://github.com/libimobiledevice/libplist/issues/98
>
> Hi,
>
> the following vulnerability was published for libplist.
>
> CVE-2017-6438[0]:
> | Heap-based buffer overflow in the parse_unicode_node function in
> | bplist.c in libimobiledevice libplist 1.12 allows local users to cause
> | a denial of service (out-of-bounds write) and possibly code execution
> | via a crafted plist file.
>
> If you fix the vulnerability please also make sure to include the
> CVE (Common Vulnerabilities & Exposures) id in your changelog entry.
>
> For further information see:
>
> [0] https://security-tracker.debian.org/tracker/CVE-2017-6438
> https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6438
> [1] https://github.com/libimobiledevice/libplist/issues/98
>
> Please adjust the affected versions in the BTS as needed.
Confirmed as well via the reproducer for the newest version in sid
(1.12+git+1+e37ca00-0.1):
==16332==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xb5800750 at pc 0xb71620d5 bp 0xbf8ffe48 sp 0xbf8ffe3c
WRITE of size 2 at 0xb5800750 thread T0
#0 0xb71620d4 in parse_unicode_node src/bplist.c:384
#1 0xb716580a in parse_bin_node src/bplist.c:679
#2 0xb716676f in parse_bin_node_at_index src/bplist.c:759
#3 0xb71634f5 in parse_dict_node src/bplist.c:461
#4 0xb7165a1a in parse_bin_node src/bplist.c:701
#5 0xb716676f in parse_bin_node_at_index src/bplist.c:759
#6 0xb7166de0 in plist_from_bin src/bplist.c:853
#7 0x804952a in main tools/plistutil.c:150
#8 0xb6f92275 in __libc_start_main (/lib/i386-linux-gnu/libc.so.6+0x18275)
#9 0x8048ac0 (/root/libplist-1.12+git+1+e37ca00/tools/.libs/plistutil+0x8048ac0)
0xb5800751 is located 0 bytes to the right of 1-byte region [0xb5800750,0xb5800751)
allocated by thread T0 here:
#0 0xb7239194 in malloc (/usr/lib/i386-linux-gnu/libasan.so.3+0xbe194)
#1 0xb7161f97 in parse_unicode_node src/bplist.c:377
#2 0xb716580a in parse_bin_node src/bplist.c:679
#3 0xb716676f in parse_bin_node_at_index src/bplist.c:759
#4 0xb71634f5 in parse_dict_node src/bplist.c:461
#5 0xb7165a1a in parse_bin_node src/bplist.c:701
#6 0xb716676f in parse_bin_node_at_index src/bplist.c:759
#7 0xb7166de0 in plist_from_bin src/bplist.c:853
#8 0x804952a in main tools/plistutil.c:150
#9 0xb6f92275 in __libc_start_main (/lib/i386-linux-gnu/libc.so.6+0x18275)
SUMMARY: AddressSanitizer: heap-buffer-overflow src/bplist.c:384 in parse_unicode_node
Shadow bytes around the buggy address:
0x36b00090: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b000a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b000b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b000c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b000d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x36b000e0: fa fa fa fa fa fa fa fa fa fa[01]fa fa fa 00 04
0x36b000f0: fa fa 00 04 fa fa 00 04 fa fa 00 04 fa fa 00 04
0x36b00100: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b00110: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b00120: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36b00130: 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
==16332==ABORTING
Regards,
Salvatore
More information about the Pkg-gtkpod-devel
mailing list