Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

Trading Technologies Messaging Multiple Unauthenticated Remote DoS

High

Synopsis

CVE-2020-5778: Message 8 Unauthenticated Remote DoS.

A flaw exists in ttmd.exe due to improper validation of user-supplied data when processing a type 8 message sent to default TCP RequestPort 10200.
An unauthenticated, remote attacker can exploit this issue, via a specially crafted message, to terminate ttmd.exe.

A type 8 message includes a 2-byte field indicating how many name-value pairs are in the message. The attacker can specify a very large value (i.e., 0xffff) in this field to cause the vulnerable code to access data beyond the message boundary, resulting in memory access violation in ttmd.exe and subsequent process termination:

0:025> g
(4c4.7e0): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=02c5c000 ebx=00000000 ecx=02c5c001 edx=00000002 esi=02c5c000 edi=124fee84
eip=00f83200 esp=124fed80 ebp=124fedd4 iopl=0         nv up ei ng nz na pe cy
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010287
ttmd+0x213200:
00f83200 8a10            mov     dl,byte ptr [eax]          ds:002b:02c5c000=??
0:016> kb
 # ChildEBP RetAddr  Args to Child              
WARNING: Stack unwind information not available. Following frames may be wrong.
00 124fedd4 00e723b9 08c51964 0000f74f 02bbae14 ttmd+0x213200
01 124fef20 00e54664 00c51960 00000000 02a9dde8 ttmd+0x1023b9
02 124fef34 00e543e0 02a644f8 02c51960 00000412 ttmd+0xe4664
03 124fef58 00da9497 02a644f8 02a9dde8 00000000 ttmd+0xe43e0
04 124fef90 00d9cbd9 02c51960 00000000 0230b1c4 ttmd+0x39497
05 124ff340 00d8cc1b 02a9da28 00000012 00000000 ttmd+0x2cbd9
06 124ff544 00d9b180 023bebc8 02bbb4b0 7709e4c8 ttmd+0x1cc1b
07 124ff5a8 00d8fe73 02bbb4b0 ffffffff 124ff7c0 ttmd+0x2b180
08 124ff5b8 00d8b68a 02a9e898 7346c59c 7346c59c ttmd+0x1fe73
09 124ff7c0 7346c556 02bbb4bc 22cfdcd7 7346c59c ttmd+0x1b68a
0a 124ff7f8 7346c600 7346c59c 124ff818 74fd62c4 MSVCR100!_callthreadstartex+0x1b [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 314] 
0b 124ff804 74fd62c4 01dc6998 74fd62a0 249a8e07 MSVCR100!_threadstartex+0x64 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 292] 
0c 124ff818 76ff1f69 01dc6998 2697d06e 00000000 KERNEL32!BaseThreadInitThunk+0x24
0d 124ff860 76ff1f34 ffffffff 77013626 00000000 ntdll!__RtlUserThreadStart+0x2f
0e 124ff870 00000000 7346c59c 01dc6998 00000000 ntdll!_RtlUserThreadStart+0x1b
0:016> lm vm ttmd
Browse full module list
start    end        module name
00d70000 0109f000   ttmd       (no symbols)           
    Loaded symbol image file: C:\tt\ttm\ttmd.exe
    Image path: C:\tt\ttm\ttmd.exe
    Image name: ttmd.exe
    Browse all global symbols  functions  data
    Timestamp:        Wed Feb 26 10:12:05 2020 (5E56B4F5)
    CheckSum:         0032D397
    ImageSize:        0032F000
    File version:     7.1.28.3
    Product version:  7.1.28.3
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        1.0 App
    File date:        00000000.00000000
    Translations:     0409.04b0
    Information from resource tables:
        CompanyName:      Trading Technologies International, Inc.
        ProductName:      Trading Technologies Messaging
        InternalName:     TTM Daemon
        OriginalFilename: ttmd.exe
        ProductVersion:   7.1.28.3
        FileVersion:      7.1.28.3
        FileDescription:  Trading Technologies Messaging Daemon
        LegalCopyright:   Copyright © 1998 - 2020 Trading Technologies International, Inc. All Rights Reserved.
        LegalTrademarks:  Trading Technologies Messaging is a trademark of Trading Technologies International, Inc. All Rights Reserved.


CVE-2020-5779: Message 4 Unauthenticated Remote DoS
A flaw relates to invalid parameter handling when calling strcpy_s() with an invalid parameter (i.e., a long src string parameter) as a part of processing a type 4 message sent to default TCP RequestPort 10200. It's been observed that ttmd.exe terminates as a result.

An unauthenticated, remote attacker can exploit this issue, via a specially crafted message, to terminate ttmd.exe:

0:018> g
Invalid Parameter Found
(150.10b4): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=73b88e6b edx=00000000 esi=00000001 edi=7342014e
eip=00f67839 esp=11bce9d4 ebp=11bcec80 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ttmd+0x1f7839:
00f67839 cc              int     3
0:018> kb
 # ChildEBP RetAddr  Args to Child              
WARNING: Stack unwind information not available. Following frames may be wrong.
00 11bcec80 7349af8a 00000000 00000000 00000000 ttmd+0x1f7839
01 11bcec98 734496e4 020e3a34 022d2234 11bcecdc MSVCR100!_invalid_parameter_noinfo+0xc [f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c @ 121] 
02 11bceca8 00f81ffb 020e3a34 00000080 022d2234 MSVCR100!strcpy_s+0x24 [f:\dd\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl @ 18] 
03 11bcecdc 00e3b74a 022d2234 020e3a30 020e3a34 ttmd+0x211ffb
04 11bcecf0 00e3c16c 022d2234 00000000 00000001 ttmd+0xcb74a
05 11bcede4 00e696db 11bcee00 11bcee18 11bcee0a ttmd+0xcc16c
06 11bcee10 00e72329 022d2234 0223dd24 0223dd40 ttmd+0xf96db
07 11bcef58 00e54664 002d2220 00000000 02120c48 ttmd+0x102329
08 11bcef6c 00e543e0 016cef70 022d2220 00000215 ttmd+0xe4664
09 11bcef90 00da9497 016cef70 02120c48 00000000 ttmd+0xe43e0
0a 11bcefc8 00d9cbd9 022d2220 00000000 0161b154 ttmd+0x39497
0b 11bcf378 00d8cc1b 02121128 00000015 00000000 ttmd+0x2cbd9
0c 11bcf57c 00d9b180 020e2660 0223e4c0 7709e4d0 ttmd+0x1cc1b
0d 11bcf5e0 00d8fe73 0223e4c0 ffffffff 11bcf7f8 ttmd+0x2b180
0e 11bcf5f0 00d8b68a 02121a58 7346c59c 7346c59c ttmd+0x1fe73
0f 11bcf7f8 7346c556 0223e4cc 83f31157 7346c59c ttmd+0x1b68a
10 11bcf830 7346c600 7346c59c 11bcf850 74fd62c4 MSVCR100!_callthreadstartex+0x1b [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 314] 
11 11bcf83c 74fd62c4 015c6bc0 74fd62a0 85b874e1 MSVCR100!_threadstartex+0x64 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 292] 
12 11bcf850 76ff1f69 015c6bc0 87b52aa2 00000000 KERNEL32!BaseThreadInitThunk+0x24
13 11bcf898 76ff1f34 ffffffff 77013640 00000000 ntdll!__RtlUserThreadStart+0x2f
14 11bcf8a8 00000000 7346c59c 015c6bc0 00000000 ntdll!_RtlUserThreadStart+0x1b
0:018> g
eax=00000000 ebx=7709f9a0 ecx=00000002 edx=00000000 esi=00000003 edi=00000000
eip=76ffefac esp=11bce874 ebp=11bce94c iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000206
ntdll!NtTerminateProcess+0xc:
76ffefac c20800          ret     8
0:018> g
       ^ No runnable debuggees error in 'g'
0:018>  lm vm ttmd
Browse full module list
start    end        module name
00d70000 0109f000   ttmd       (no symbols)           
    Loaded symbol image file: C:\tt\ttm\ttmd.exe
    Image path: C:\tt\ttm\ttmd.exe
    Image name: ttmd.exe
    Browse all global symbols  functions  data
    Timestamp:        Wed Feb 26 10:12:05 2020 (5E56B4F5)
    CheckSum:         0032D397
    ImageSize:        0032F000
    File version:     7.1.28.3
    Product version:  7.1.28.3
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        1.0 App
    File date:        00000000.00000000
    Translations:     0409.04b0
    Information from resource tables:
        CompanyName:      Trading Technologies International, Inc.
        ProductName:      Trading Technologies Messaging
        InternalName:     TTM Daemon
        OriginalFilename: ttmd.exe
        ProductVersion:   7.1.28.3
        FileVersion:      7.1.28.3
        FileDescription:  Trading Technologies Messaging Daemon
        LegalCopyright:   Copyright © 1998 - 2020 Trading Technologies International, Inc. All Rights Reserved.
        LegalTrademarks:  Trading Technologies Messaging is a trademark of Trading Technologies International, Inc. All Rights Reserved.

Solution

Apply vendor supplied patch.

Disclosure Timeline

05/22/2020 - Vulnerabilities discovered
06/04/2020 - Tenable requests security contact via [email protected], [email protected], [email protected]
06/04/2020 - Trading Technologies states that [email protected] is the correct address
06/04/2020 - Tenable discloses
06/18/2020 - Tenable requests status update
06/18/2020 - Trading Technologies states patches are in progress
06/30/2020 - Tenable requests status update
07/07/2020 - Tenable requests status update
07/07/2020 - Trading Technologies states patches are in progress
08/04/2020 - Tenable requests status update

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]

Risk Information

Tenable Advisory ID: TRA-2020-52
CVSSv3 Base / Temporal Score:
7.5 / 7.1
CVSSv3 Vector:
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Affected Products:
Trading Technologies Messaging 7.1.28.3
Risk Factor:
High

Advisory Timeline

09/02/2020 - Initial release.