缺陷存在于lmadmin由于不当处理FLEX_MSG_QUORUM消息时验证用户提供的数据。一个未经身份验证的远程攻击者可以指定一个大,32位整数(即签署。消息中,0 x7fffffff)导致c++新运营商抛出一个未处理的异常,导致过程终止:
。text: 005012 b3 lea eax, [ebp + int32];attacker-controlled;即:0 x7fffffff。text: 005012 b6推动eax。text: 005012 b7 mov连成一片,[ebp + pos]。text: 005012 ba推动交易所。text: 005012 bb mov edx, [ebp + arg_sebuf]。text: 005012是推动edx。text: 005012高炉mov连成一片,[ebp + var_28]。text: 005012 c2叫obj14_sebufGetBe32;返回true / false。text: 005012 c7 movzx eax,艾尔。text: 005012 ca测试eax, eax。text: 005012 cc jnz短loc_5012D5。text: 005012 ce xor,艾尔。text: 005012 d0 jmp loc_50139A。text: 005012 d5;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -。text: 005012 d5。text: 005012 d5 loc_5012D5:;代码XREF: obj14_Parse_FLEX_MSG_QUORUM↑+ 5 c j。text: 005012 d5 mov连成一片,[ebp + pos]。text: 005012 d8添加连成一片,4。text: 005012 db mov [ebp + pos],连成一片。text: 005012 de mov [ebp + var_18] 0。text: 005012 e5 cmp ebp + int32, 0。text: 005012 e9 jle短negative_size。text: 005012 eb mov edx, [ebp + int32];attacker-controlled。text: 005012 eb;0 x7fffffff - >未处理的例外。text: 005012 ee推动edx。text: 005012 ef电话吗? ?_U@YAPAXI@Z;运营商新的[](单位)
在32位lmadmin未处理的异常。exe (v11.16.5.1):
(1284.1488):c++嗯例外-代码e06d7363(第一次)(1284.1488):c++呃异常代码e06d7363 (! ! !第二次机会!)eax = 09 cffae0 ebx = 08年c70c40连成一片= 00000003 edx = 00000003 esi = 03 fecba8 edi = 09 cffb80 eip = 7 d85c5af esp = 09 cffae0 ebp = 09 cffb30 iopl = 0 nv了ei pl新西兰ac阿宝数控c = 0023 ss = 002 b d = 002 b es = 002 fs = 0053 gs = 002 b英语= 00000212 KERNELBASE !RaiseException + 0 x58: 7 d85c5af c9离开0:008 > kb ChildEBP RetAddr Args儿童09 cffb30 03 fd8a19 e06d7363 00000001 00000003 KERNELBASE !RaiseException + 0 x58 09 cffb70 0401 dea6 09年cffb80 03 fecba8 03 fed3e4 MSVCR120 !_CxxThrowException + 0 x5b [f: crt \ crtw32 \ \ dd \ vctools \嗯\扔。cpp @ 152) 09年cffb90 005012 f4 7 fffffff 1 e9495d9 005012 f MSVCR120 !运营商新+ 0×50 [f: crt \ \ dd \ vctools \ crtw32堆\ \新。cpp @ 62]警告:堆栈解除信息不可用。后帧可能是错误的。09年cffbd4 004 f58a8 09年cffdcc 09 cffe48 1 e9493b5 lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x5adf4 09 cffdb8 004 f46c6 09年cffdcc 09 cffe48 1 e94906d lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x4f3a8 09 cffe60 00536521 0954 e949081 fc04 00000000 lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x4e1c6 09 cffe8c 00536 de5 00000003 08年c6cfe8 09 cffeb0 lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x90021 0954 fbd4 00000003 08年09年cffe9c 005365 fd c6cfec lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x908e5 09 cffeb0 00536 dc0 00000000 08年c6cfe8 09 cffecf lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x900fd 09 cffed0 00537395 08年c6cfe8 09 cfff10 0042829 b lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x908c0 09 cffedc 0042829 b 08年c6cfe8 1 e94911d 09 cfff68 lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x90e95 004 f28e2 08年09年cfff10 c6cfa0 09 cfff44 00630中东欧lmadmin + 0 x2829b 09 cfff1c 00630中东欧1 e949149 00000000 0 b040c40 lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x4c3e2 09 cfff44 03 fec129 08年c6cfa0 2 e566c36 00000000 lmadmin !xalanc_1_11:: XalanMemoryManager::操作符= + 0 x18a7ee 09 cfff7c 03 fec10d 00000000 09 cfff94 7 dd7343d MSVCR120 !_callthreadstartex + 0 x1b [f: crt \ crtw32 \ \ dd \ vctools \ \ threadex创业。c @ 381) 09年cfff88 7 dd7343d 08 c70c40 09 cfffd4 7 dea9812 MSVCR120 !_threadstartex + 0 x69 [f: crt \ crtw32 \ \ dd \ vctools \ \ threadex创业。c @ 359) 09年cfff94 7 dea9812 08年c70c40 44 e2d13e 00000000 kernel32 !BaseThreadInitThunk + 0 xe 09 cfffd4 7 dea97e5 03 fec0cc 08年c70c40 ffffffff ntdll !__RtlUserThreadStart+0x70 09cfffec 00000000 03fec0cc 08c70c40 00000000 ntdll!_RtlUserThreadStart+0x1b
概念验证
flexera_fnp_lmadmin_msg_282_dos_cve - 2020 - 12080. - py
附件是PoC lmadmin.exe终止。可以使用PoC如下:
python flexera_fnp_lmadmin_msg_282_dos_cve - 2020 - 12080。py - t
- p 27000