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 digit-labs.org)
"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: mercurypown-v1.pl
Type: text/x-perl
Size: 2072 bytes
Desc: not available
Url : http://lists.grok.org.uk/pipermail/full-disclosure/attachments/20070306/11368a55/attachment.bin