Multiple Cyan Chat Exploits

From: chip (chip@force-elite.com)
Date: 08/03/02


From: "chip" <chip@force-elite.com>
To: "bugtraq" <bugtraq@securityfocus.com>
Date: Fri, 2 Aug 2002 15:31:47 -0700


+ Summary +
Several exploits allow users to conduct flooding of other users and create client
connections that are not visible to other users connected. These vulnerabilities
can create havoc in an, otherwise, friendly chat environment.

+ About Cyan Chat +
Cyan Chat (CC) is a simple chat protocol developed by Cyan
[http://www.cyan.com] for use of its fans. It uses the TCP port 1812 for
communication. A page describing the protocol is located at:
http://cho.cyan.com/chat/protocol1.html

The Java Client, that has, traditionally, been the most common means of access,
is located at: http://cho.cyan.com/chat/standard/chat.html

The main CC web site can be found at: http://cho.cyan.com/chat/

+ Vendor Contact +
Cyan was contacted on this matter on Sunday July 28th.
They have informed me of their intention to patch these bugs.

+ Quit Flood Exploit +
Use Telnet to connect to the sever on TCP port 1812 and repeatedly send "15\n."
This will flood the chat room with messages from a non-existent user-name
quitting (appears to be the client connection number). It is possible to flood the
server, disabling other users to chat.
Users can, also, use the Java client and repeatedly click on the "join/quit" button
to produce a similar affect, but the user-name submitted would be visible.

+ Invisible Character Exploit +
The normal chat Java chat client renders the haxadecimal number 0xA0
(decimal 160) as a space. This allows it to appear that there are two users
connected with the same name. A user named, "The World," and, "The\160World,"
would both appear to be the same user, to other users. It is impossible to tell which
user is talking in the chat room. This same exploit has been, previously, used to
flood an user or the entire chat room with this single character repeating; to, in
affect, "clear" the screens of all connected users.

+ Invisible User Exploit +
Connect to CC using Telnet. Login and send either "11\n" "21\n" "31\n" or
"35\n". The user-name you logged in will no longer be sent out by the server in
its user list update. The client using this will, also, no longer receive the contents
of what other users are saying in the chat room. The client can now send message
commands, but their user-name is not listed as online. A user can login as under
their normal name, and, if a previously made invisible client is already connected
and has logged in as that name, it can appear to talk as that user. An example
(Win32 client) that automates this, which was
written by Kyle Devies [kdevies@neo.rr.com], is available at:
http://force-elite.com/~chip/cc-ml-1.0.exe

+ Solutions +
Cyan's Chat server is a closed source program without any binaries available for
download. A server, which was written by Paul Querna [chip@force-elite.com],
that implements the CC protocol and is not vulnerable to these exploits is located
at: http://mhs.mead.k12.wa.us/~chip/chat/

+ Credit +
Combined work of:
Paul Querna - chip - chip@force-elite.com
Matt Witkowski - The World - MJW2286@hotmail.com
Matt Wallace - Carrad - carrad_of_dni@yahoo.com
Kyle Devies - Myst Librarian - kdevies@neo.rr.com



Relevant Pages

  • Re: Restricting functionality on objects: "remote access proxy" (pattern)
    ... GUI, so users with admin level will see a popup with more entries than ... where this object exists will have an interface for communicating with ... client has lost its mind and signal an exception if it has. ... about the current user's access rights in a chat. ...
    (comp.object)
  • Strange problem with JTextArea
    ... The text of one client that is send over sockets is used to call the ... ..appendfunction to display the text. ... When I run the chat GUI ... ActionListener actionListener = new ActionListener{ ...
    (comp.lang.java.gui)
  • Re: Pattern/s sought for chat client implementation
    ... the object/s that handle the messages between the client and server. ... a Facade pattern, Chain of Responsibility pattern doesn't seem to ... incoming messages to the respective chat windows. ... A server: Recieves a messages, processes them, and sends them back out ...
    (comp.lang.java.programmer)
  • Re: HTML Chat Client
    ... "I would like to start working on a client P2P chat program ... I'm assuming you mean client to client w/ no server in between? ... Build a template page that uses an IFrame to display the content of the ... The IFrame source page should have a meta-refresh tag set for say 10 ...
    (microsoft.public.vb.general.discussion)
  • Re: Access 2007->SQL Server2005 "connection was forcibly closed",G
    ... I think it will ameliorate the situation if you clean up the client as ... And to come back to my problem: I think with help of the SQL Server admins ... closed connections - but all of these errors are in the version which used ... Every new client opens again 30 connections if I open 30 tables ...
    (microsoft.public.sqlserver.connect)