Mercury/32 4.01b Buffer Overflow

Credit: mu-b
Risk: High
Local: No
Remote: Yes

CVSS Base Score: 10/10
Impact Subscore: 10/10
Exploitability Subscore: 10/10
Exploit range: Remote
Attack complexity: Low
Authentication: No required
Confidentiality impact: Complete
Integrity impact: Complete
Availability impact: Complete

Attached is a remote exploit (disarmed PoC) for Mercury/32 4.01b IMAPD. The vulnerability is located in the call:- 034646AE call sub_346ECD9 which is passes (as third argument) the number of bytes remaining in a stack buffer in order to construct the complete command from the continuation data. However the calculation neglects to take into account the length of the previously supplied command ("1 LOGIN <900 x 'x20'> {255}"). The result of the attached exploit is a DoS (given below), however, remote code execution is possible in at least two different ways without authentication... (b24.a70): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0456d70c ebx=41414141 ecx=7ffad000 edx=034a2970 esi=00000500 edi=00000000 eip=00441d88 esp=0456d6dc ebp=0456d6ec iopl=0 nv up ei pl zr na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246 mercuryi!miconfig_proc_3+0xbacd: 0346ed48 8807 mov byte ptr [edi],al ds:0023:04570000=?? (note this may be the same as BID 21110). -- mu-b (mu-b at "Only a few people will follow the proof. Whoever does will spend the rest of his life convincing people it is correct." - Anonymous, "P ?= NP" -------------- next part -------------- A non-text attachment was scrubbed... Name: Type: text/x-perl Size: 2072 bytes Desc: not available Url :

Vote for this issue:


Thanks for you vote!


Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.

(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2019,


Back to Top