[Secure-testing-team] Bug#866022: lrzip: CVE-2017-9928: Stack buffer overflow in get_fileinfoin lrzip.c, allows attackers to cause DoS

Salvatore Bonaccorso carnil at debian.org
Mon Jun 26 17:20:48 UTC 2017


Source: lrzip
Version: 0.616-1
Severity: important
Tags: upstream security
Forwarded: https://github.com/ckolivas/lrzip/issues/74

Hi,

the following vulnerability was published for lrzip.

CVE-2017-9928[0]:
| In lrzip 0.631, a stack buffer overflow was found in the function
| get_fileinfo in lrzip.c:979, which allows attackers to cause a denial
| of service via a crafted file.

=================================================================
==31156==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffc9c9a8be8 at pc 0x7fb2d03e1925 bp 0x7ffc9c9a8940 sp 0x7ffc9c9a80f0
WRITE of size 65 at 0x7ffc9c9a8be8 thread T0
    #0 0x7fb2d03e1924 in __interceptor_read (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x48924)
    #1 0x4112a0 in get_fileinfo lrzip.c:931
    #2 0x4087aa in main main.c:476
    #3 0x7fb2cef152b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)
    #4 0x402f49 in _start (/root/source-lrzip/lrzip-0.616/lrzip+0x402f49)

Address 0x7ffc9c9a8be8 is located in stack of thread T0 at offset 424 in frame
    #0 0x4109e3 in get_fileinfo lrzip.c:879

  This frame has 10 object(s):
    [32, 33) 'chunk_byte'
    [96, 97) 'ctype'
    [160, 168) 'u_len'
    [224, 232) 'c_len'
    [288, 296) 'last_head'
    [352, 360) 'expected_size'
    [416, 424) 'chunk_size'
    [480, 496) 'stream_head' <== Memory access at offset 424 partially underflows this variable
    [544, 560) 'md5_stored'
    [608, 752) 'fdin_stat'
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x48924) in __interceptor_read
Shadow bytes around the buggy address:
  0x10001392d120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10001392d130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10001392d140: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 01 f4 f4 f4
  0x10001392d150: f2 f2 f2 f2 01 f4 f4 f4 f2 f2 f2 f2 00 f4 f4 f4
  0x10001392d160: f2 f2 f2 f2 00 f4 f4 f4 f2 f2 f2 f2 00 f4 f4 f4
=>0x10001392d170: f2 f2 f2 f2 00 f4 f4 f4 f2 f2 f2 f2 00[f4]f4 f4
  0x10001392d180: f2 f2 f2 f2 00 00 f4 f4 f2 f2 f2 f2 00 00 f4 f4
  0x10001392d190: f2 f2 f2 f2 00 00 00 00 00 00 00 00 00 00 00 00
  0x10001392d1a0: 00 00 00 00 00 00 f4 f4 f3 f3 f3 f3 00 00 00 00
  0x10001392d1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
  0x10001392d1c0: f1 f1 00 00 f4 f4 f2 f2 f2 f2 00 00 f4 f4 f2 f2
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
==31156==ABORTING

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-9928
    https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9928
[1] https://github.com/ckolivas/lrzip/issues/74

Regards,
Salvatore



More information about the Secure-testing-team mailing list