### Synopsis
While developing a Nessus plugin to detect [CVE-2017-16720](https://www.tenable.com/cve/CVE-2017-16720), Tenable found an unauthenticated remote stack buffer overflow in **BwPAlarm.dll** shipped with Advantech WebAccess version 8.3.2. The flaw is due to improper validation of user-supplied input. The overflow can be triggered by sending a specially crafted DCERPC message with opcode 70022 to **webvrpcs.exe**.
The following disassembly shows the vulnerable code copies a user-supplied string to a fixed-size stack buffer:
```
.text:0700391E           lea     edx, [ebp+var_59C] ; stack buffer of fixed size
.text:07003924           repne scasb ; edi = user-supplied string
.text:07003926           not     ecx ; length of the string including the NUL char
.text:07003928           sub     edi, ecx
.text:0700392A           push    3Ah
.text:0700392C           mov     eax, ecx
.text:0700392E           mov     esi, edi
.text:07003930           mov     edi, edx
.text:07003932           shr     ecx, 2
.text:07003935           rep movsd ; strcpy(stack_buf, long_str) = stack overflow!!!
.text:07003937           mov     ecx, eax
.text:07003939           and     ecx, 3
.text:0700393C           rep movsb
```
                       
                       
        
          
暂无评论