<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 13: Multiple Heap-based Buffer Overflow in the do_msg() function</title><link>https://sourceforge.net/p/mcpp/bugs/13/</link><description>Recent changes to 13: Multiple Heap-based Buffer Overflow in the do_msg() function</description><atom:link href="https://sourceforge.net/p/mcpp/bugs/13/feed.rss" rel="self"/><language>en</language><lastBuildDate>Tue, 26 Mar 2024 16:17:57 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/mcpp/bugs/13/feed.rss" rel="self" type="application/rss+xml"/><item><title>#13 Multiple Heap-based Buffer Overflow in the do_msg() function</title><link>https://sourceforge.net/p/mcpp/bugs/13/?limit=25#9d5d</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;For anyone looking at this thread currently ... this was fixed back in 2019 by the Debian maintainers with 05-gniibe-fix-13.patch&lt;/p&gt;
&lt;p&gt;I have applied a slightly modified version of that patch here ...&lt;br/&gt;
&lt;a href="https://github.com/jbrandwood/mcpp/commit/70a33a47bbd34af32c58b4bb10bd82392a7836b3" rel="nofollow"&gt;https://github.com/jbrandwood/mcpp/commit/70a33a47bbd34af32c58b4bb10bd82392a7836b3&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Brandwood</dc:creator><pubDate>Tue, 26 Mar 2024 16:17:57 -0000</pubDate><guid>https://sourceforge.net3938e90bdcc369baaabc015a6787aa1d70d79ba2</guid></item><item><title>#13 Multiple Heap-based Buffer Overflow in the do_msg() function</title><link>https://sourceforge.net/p/mcpp/bugs/13/?limit=25#a404</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The first issue (L2514) got assigned CVE-2019-14274.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frederic Cambus</dc:creator><pubDate>Fri, 26 Jul 2019 06:01:31 -0000</pubDate><guid>https://sourceforge.net5882cee07d8c7d1f2f54f64a9739af9671febd6d</guid></item><item><title>#13 Multiple Heap-based Buffer Overflow in the do_msg() function</title><link>https://sourceforge.net/p/mcpp/bugs/13/?limit=25#ab7e</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;So, ASan calls both issues overflows, but only the first issue (L2514) is technically an actual buffer-overflow, the second issue (L2466) is actually an out-of-bounds read.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frederic Cambus</dc:creator><pubDate>Wed, 24 Jul 2019 06:36:24 -0000</pubDate><guid>https://sourceforge.net7885a250676f2367699cd6ef258debe0740336f6</guid></item><item><title>Multiple Heap-based Buffer Overflow in the do_msg() function</title><link>https://sourceforge.net/p/mcpp/bugs/13/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;While fuzzing mcpp with American Fuzzy Lop, I found two Heap-based&lt;br/&gt;
Buffer Overflow in the do_msg() function, in support.c L2514 and L2466.&lt;/p&gt;
&lt;p&gt;Attaching reproducers, issues can be reproduced by running:&lt;/p&gt;
&lt;p&gt;mcpp test-do_msg01&lt;br/&gt;
mcpp test-do_msg02&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Frederic Cambus.&lt;/p&gt;
&lt;p&gt;=================================================================&lt;br/&gt;
==10413==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000001d8 at pc 0x00000055ca6a bp 0x7fffb81dfbf0 sp 0x7fffb81dfbe8&lt;br/&gt;
WRITE of size 1 at 0x6020000001d8 thread T0&lt;br/&gt;
    #0 0x55ca69 in do_msg /home/fcambus/mcpp-2.7.2/src/support.c:2514:23&lt;br/&gt;
    #1 0x54eed9 in cerror /home/fcambus/mcpp-2.7.2/src/support.c:2633:5&lt;br/&gt;
    #2 0x553456 in scan_quote /home/fcambus/mcpp-2.7.2/src/support.c:867:21&lt;br/&gt;
    #3 0x55a22e in parse_line /home/fcambus/mcpp-2.7.2/src/support.c:1758:22&lt;br/&gt;
    #4 0x550214 in get_ch /home/fcambus/mcpp-2.7.2/src/support.c:1580:13&lt;br/&gt;
    #5 0x513c1b in mcpp_main /home/fcambus/mcpp-2.7.2/src/main.c:626:17&lt;br/&gt;
    #6 0x513396 in main /home/fcambus/mcpp-2.7.2/src/main.c:421:5&lt;br/&gt;
    #7 0x7f2b6ef38b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310&lt;br/&gt;
    #8 0x41a149 in _start (/home/fcambus/mcpp-verif/mcpp+0x41a149)&lt;/p&gt;
&lt;p&gt;0x6020000001d8 is located 0 bytes to the right of 8-byte region [0x6020000001d0,0x6020000001d8)&lt;br/&gt;
allocated by thread T0 here:&lt;br/&gt;
    #0 0x4da000 in malloc (/home/fcambus/mcpp-verif/mcpp+0x4da000)&lt;br/&gt;
    #1 0x55c21b in do_msg /home/fcambus/mcpp-2.7.2/src/support.c:2459:35&lt;br/&gt;
    #2 0x54eed9 in cerror /home/fcambus/mcpp-2.7.2/src/support.c:2633:5&lt;br/&gt;
    #3 0x553456 in scan_quote /home/fcambus/mcpp-2.7.2/src/support.c:867:21&lt;br/&gt;
    #4 0x55a22e in parse_line /home/fcambus/mcpp-2.7.2/src/support.c:1758:22&lt;br/&gt;
    #5 0x550214 in get_ch /home/fcambus/mcpp-2.7.2/src/support.c:1580:13&lt;br/&gt;
    #6 0x513c1b in mcpp_main /home/fcambus/mcpp-2.7.2/src/main.c:626:17&lt;br/&gt;
    #7 0x513396 in main /home/fcambus/mcpp-2.7.2/src/main.c:421:5&lt;br/&gt;
    #8 0x7f2b6ef38b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310&lt;/p&gt;
&lt;p&gt;SUMMARY: AddressSanitizer: heap-buffer-overflow /home/fcambus/mcpp-2.7.2/src/support.c:2514:23 in do_msg&lt;br/&gt;
Shadow bytes around the buggy address:&lt;br/&gt;
  0x0c047fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;
  0x0c047fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;
  0x0c047fff8000: fa fa 00 06 fa fa fd fd fa fa 00 07 fa fa fd fa&lt;br/&gt;
  0x0c047fff8010: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa&lt;br/&gt;
  0x0c047fff8020: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa&lt;br/&gt;
=&amp;gt;0x0c047fff8030: fa fa fd fa fa fa fd fa fa fa 00&lt;span&gt;[fa]&lt;/span&gt;fa fa fa fa&lt;br/&gt;
  0x0c047fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8070: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
Shadow byte legend (one shadow byte represents 8 application bytes):&lt;br/&gt;
  Addressable:           00&lt;br/&gt;
  Partially addressable: 01 02 03 04 05 06 07 &lt;br/&gt;
  Heap left redzone:       fa&lt;br/&gt;
  Freed heap region:       fd&lt;br/&gt;
  Stack left redzone:      f1&lt;br/&gt;
  Stack mid redzone:       f2&lt;br/&gt;
  Stack right redzone:     f3&lt;br/&gt;
  Stack after return:      f5&lt;br/&gt;
  Stack use after scope:   f8&lt;br/&gt;
  Global redzone:          f9&lt;br/&gt;
  Global init order:       f6&lt;br/&gt;
  Poisoned by user:        f7&lt;br/&gt;
  Container overflow:      fc&lt;br/&gt;
  Array cookie:            ac&lt;br/&gt;
  Intra object redzone:    bb&lt;br/&gt;
  ASan internal:           fe&lt;br/&gt;
  Left alloca redzone:     ca&lt;br/&gt;
  Right alloca redzone:    cb&lt;br/&gt;
==10413==ABORTING&lt;/p&gt;
&lt;p&gt;=================================================================&lt;br/&gt;
==10415==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000000f2 at pc 0x00000055c3ad bp 0x7ffd32cbaa30 sp 0x7ffd32cbaa28&lt;br/&gt;
READ of size 1 at 0x6020000000f2 thread T0&lt;br/&gt;
    #0 0x55c3ac in do_msg /home/fcambus/mcpp-2.7.2/src/support.c:2466:21&lt;br/&gt;
    #1 0x54f169 in cwarn /home/fcambus/mcpp-2.7.2/src/support.c:2647:5&lt;br/&gt;
    #2 0x5524c1 in scan_quote /home/fcambus/mcpp-2.7.2/src/support.c:765:25&lt;br/&gt;
    #3 0x55a22e in parse_line /home/fcambus/mcpp-2.7.2/src/support.c:1758:22&lt;br/&gt;
    #4 0x550214 in get_ch /home/fcambus/mcpp-2.7.2/src/support.c:1580:13&lt;br/&gt;
    #5 0x513c1b in mcpp_main /home/fcambus/mcpp-2.7.2/src/main.c:626:17&lt;br/&gt;
    #6 0x513396 in main /home/fcambus/mcpp-2.7.2/src/main.c:421:5&lt;br/&gt;
    #7 0x7f9fb21ebb96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310&lt;br/&gt;
    #8 0x41a149 in _start (/home/fcambus/mcpp-verif/mcpp+0x41a149)&lt;/p&gt;
&lt;p&gt;0x6020000000f2 is located 0 bytes to the right of 2-byte region [0x6020000000f0,0x6020000000f2)&lt;br/&gt;
allocated by thread T0 here:&lt;br/&gt;
    #0 0x4da000 in malloc (/home/fcambus/mcpp-verif/mcpp+0x4da000)&lt;br/&gt;
    #1 0x556ae4 in xmalloc /home/fcambus/mcpp-2.7.2/src/support.c:2336:28&lt;br/&gt;
    #2 0x552409 in scan_quote /home/fcambus/mcpp-2.7.2/src/support.c:762:31&lt;br/&gt;
    #3 0x55a22e in parse_line /home/fcambus/mcpp-2.7.2/src/support.c:1758:22&lt;br/&gt;
    #4 0x550214 in get_ch /home/fcambus/mcpp-2.7.2/src/support.c:1580:13&lt;br/&gt;
    #5 0x513c1b in mcpp_main /home/fcambus/mcpp-2.7.2/src/main.c:626:17&lt;br/&gt;
    #6 0x513396 in main /home/fcambus/mcpp-2.7.2/src/main.c:421:5&lt;br/&gt;
    #7 0x7f9fb21ebb96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310&lt;/p&gt;
&lt;p&gt;SUMMARY: AddressSanitizer: heap-buffer-overflow /home/fcambus/mcpp-2.7.2/src/support.c:2466:21 in do_msg&lt;br/&gt;
Shadow bytes around the buggy address:&lt;br/&gt;
  0x0c047fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;
  0x0c047fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;
  0x0c047fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;
  0x0c047fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;
  0x0c047fff8000: fa fa 00 06 fa fa fd fd fa fa 00 07 fa fa fd fa&lt;br/&gt;
=&amp;gt;0x0c047fff8010: fa fa fd fa fa fa fd fa fa fa fd fa fa fa&lt;span&gt;[02]&lt;/span&gt;fa&lt;br/&gt;
  0x0c047fff8020: fa fa 02 fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8030: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
  0x0c047fff8060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa&lt;br/&gt;
Shadow byte legend (one shadow byte represents 8 application bytes):&lt;br/&gt;
  Addressable:           00&lt;br/&gt;
  Partially addressable: 01 02 03 04 05 06 07 &lt;br/&gt;
  Heap left redzone:       fa&lt;br/&gt;
  Freed heap region:       fd&lt;br/&gt;
  Stack left redzone:      f1&lt;br/&gt;
  Stack mid redzone:       f2&lt;br/&gt;
  Stack right redzone:     f3&lt;br/&gt;
  Stack after return:      f5&lt;br/&gt;
  Stack use after scope:   f8&lt;br/&gt;
  Global redzone:          f9&lt;br/&gt;
  Global init order:       f6&lt;br/&gt;
  Poisoned by user:        f7&lt;br/&gt;
  Container overflow:      fc&lt;br/&gt;
  Array cookie:            ac&lt;br/&gt;
  Intra object redzone:    bb&lt;br/&gt;
  ASan internal:           fe&lt;br/&gt;
  Left alloca redzone:     ca&lt;br/&gt;
  Right alloca redzone:    cb&lt;br/&gt;
==10415==ABORTING&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frederic Cambus</dc:creator><pubDate>Wed, 19 Jun 2019 11:18:52 -0000</pubDate><guid>https://sourceforge.net82af26ba2a4f2ccc856cf619a95e89b647e0cdc1</guid></item></channel></rss>