Hey, Thanks for the notice! I see you also sent one to me privately (I wasn't online much yesterday). Would've been nice to get a couple days heads up before a wide notice :)
Looks like it's yet another binary protocol problem. I'm almost to the point where I'll be rewriting a lot of the frontend code. can't get through the TODO fast enough :( Will put out a patch as soon as I can. thanks, -Dormando On Tue, 27 Jun 2017, dan...@twistlock.com wrote: > Hi there, > > My name is Daniel and i am a security researcher @Twistlock > > As part of my job i am looking in to various open source projects that have > container images and this is how i stumbled upon memcached. > > In memcached I've found a few weak points by reviewing the code,in particular > there are a few signed-unsigned comparisons... > > The heap overflow accrues in try_read_command in memcached.c > this is a READ overflow and it is not leading to code executing, nor it leads > to memory disclosure, but it does crashes the handling thread and > potentially may crash the whole application > MITRE assigned CVE-2017-9951 > > AddressSensitizer output: > > ######### > > =30088==ERROR: AddressSanitizer: heap-buffer-overflow on address > 0x61d00000dc68 at pc 0x000000440dbc bp 0x7ffff2ffdb30 sp 0x7ffff2ffdb20 > READ of size 24 at 0x61d00000dc68 thread T2 > #0 0x440dbb in try_read_command > /home/da5h/Downloads/memcached-1.4.37/memcached.c:4312 > #1 0x440dbb in drive_machine > /home/da5h/Downloads/memcached-1.4.37/memcached.c:4820 > #2 0x7ffff6c36841 in event_persist_closure > /home/da5h/Desktop/libevent-2.1.8-stable/event.c:1580 > #3 0x7ffff6c36841 in event_process_active_single_queue > /home/da5h/Desktop/libevent-2.1.8-stable/event.c:1639 > #4 0x7ffff6c373ae in event_process_active > /home/da5h/Desktop/libevent-2.1.8-stable/event.c:1738 > #5 0x7ffff6c373ae in event_base_loop > /home/da5h/Desktop/libevent-2.1.8-stable/event.c:1961 > #6 0x4814eb in worker_libevent > /home/da5h/Downloads/memcached-1.4.37/thread.c:356 > #7 0x7ffff69fe6b9 in start_thread > (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9) > #8 0x7ffff67343dc in clone (/lib/x86_64-linux-gnu/libc.so.6+0x1073dc) > > 0x61d00000dc68 is located 24 bytes to the left of 2048-byte region > [0x61d00000dc80,0x61d00000e480) > allocated by thread T2 here: > #0 0x7ffff6f02602 in malloc > (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x98602) > #1 0x442ec1 in conn_new > /home/da5h/Downloads/memcached-1.4.37/memcached.c:504 > > Thread T2 created by T0 here: > #0 0x7ffff6ea0253 in pthread_create > (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253) > #1 0x487057 in create_worker > /home/da5h/Downloads/memcached-1.4.37/thread.c:282 > #2 0x487057 in memcached_thread_init > /home/da5h/Downloads/memcached-1.4.37/thread.c:772 > > SUMMARY: AddressSanitizer: heap-buffer-overflow > /home/da5h/Downloads/memcached-1.4.37/memcached.c:4312 try_read_command > Shadow bytes around the buggy address: > 0x0c3a7fff9b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c3a7fff9b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c3a7fff9b50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c3a7fff9b60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c3a7fff9b70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > =>0x0c3a7fff9b80: fa fa fa fa fa fa fa fa fa fa fa fa fa[fa]fa fa > 0x0c3a7fff9b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c3a7fff9ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c3a7fff9bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c3a7fff9bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c3a7fff9bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 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 > > -- > > --- > You received this message because you are subscribed to the Google Groups > "memcached" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to memcached+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > > -- --- You received this message because you are subscribed to the Google Groups "memcached" group. To unsubscribe from this group and stop receiving emails from it, send an email to memcached+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.