LogicLibrary BugScan VSR,Trillian 2.0, 3.0 and 3.1
LogicLibrary BugScan Vulnerability Summary Report (VSR)
Trillian 2.0, 3.0 and 3.1
3/23/2005
I. Background
This report is based on the example in Guidelines for Security
Vulnerability Reporting and Response, provided by the Organization
for Internet Safety (OIS). The template for this document can be
found at http://www.oisafety.org/guidelines/secresp.html.
Trillian is an all-in-one instant messaging client on Windows,
produced by Cerulean Studios. It allows users to be on several IM and
chat networks all via a single client. It also has an extensible
plug-in system and supplies plug-ins for RSS feed reading, POP3 mail
notifications, etc.
II. Description
The AIM, Yahoo, MSN, RSS and other plug-ins connect to an external
Web server at various points. A buffer iteration overflow in their
handling of HTTP 1.1 response headers in these plug-ins was found
using BugScan 2003A. For attackers to exploit this vulnerability,
they would need to take over the Web server being connected to or
DNS/route poison the victim into connecting to their malicious Web
server.
The vulnerability can be demonstrated in Trillian 2.0 by setting up a
netcat listener on port 80and then pointing Trillian's proxy, RSS
reader or anything else that connects to HTTP to the netcat listener.
After the client connects, piping a very long string followed by a
carriage return will reliably crash the client. Specially crafted
input may result in malicious code being executed under the context
of the user that Trillian is running as. This problem is compounded
because the same vulnerable code appears to have been copied into
several different components and locations.
In Trillian 3.0, many instances of the bug were fixed, but at least
one has persisted in the Yahoo IM component. This mistake is probably
due to the code duplication mentioned above. Trillian 3.0 is compiled
with the Buffer Security Check option in Visual C++ 7.1 (also known
as stack canaries), which helps prevent the exploitation of
stack-based overflows. Since this is a heap overflow, the security
check does not appear to help.
In Trillian 3.1, the aforementioned Yahoo IM vulnerabilities have
still not been fixed. There are still two exploitable buffer
iteration bugs. One is at offset 0x520296c6 and the other is at
offset 0x5201a05f. A Trillian developer who has access to the symbols
and source code should use these offsets to locate and fix these
problems.
III. Analysis
These bugs were found using BugScan 2003A, which was released in
October 2003. BugScan 2003A was able to detect the buffer iteration
bug and the fact that it was likely to be exploitable due to its
operating on user-supplied data. You can see another example of the
exploitable code by looking at location 0x10004464 in Trillian 2.0's
rss.dll. The vulnerable source probably looks approximately like
this:
while ((ch != '\n') && (bytes != 0))
{
int bytes = recv(socket, &ch, 1, ...);
*buf++ = ch;
}
The buffer will overflow if a long string with many characters is
received before the newline character over this network connection.
IV. Affected Configurations
All Trillian 2.0 versions have many of these kinds of exploitable
vulnerabilities. Many were fixed in Trillian 3.0 and 3.1, but some
still remain.
IV. Vendor Response
While initially responsive, Cerulean stopped responding to emails
after detailed reports were given. No official response at the time
of the issuance of this report.
V. CVE and OSVDB information
No official CVE or OSVDB number assigned at the time of the issuance
of this report.
VI. Disclosure Timeline
October 2003 Initial vendor notification.
November 2003 Notified vendor again via support IRC channels,
verified reception of BugScan report.
January 2004 Vendor promised fix in upcoming 3.0 release.
December 2004 Trillian 3.0 released, second BugScan showed a few
unfixed vulnerabilities remained.
February 2005 Contacted Trillian again, specifying locations of
unfixed problems.
February 18, 2005 Contacted specific employees and forwarded the VSR.
Received no response.
February 23, 2005 Contacted specific employees and forwarded the VSR.
Received no response.
February 24, 2005 Trillian 3.1 update released with no additional
security fixes from Trillian 3.0.
VII. Conclusion
LogicLibrary would like to assist in resolving this matter with
Cerulean. The resolution of these issues will be helpful to Cerulean
users, including LogicLibrary. It is recommended that users update
their version of Trillian to the latest 3.1 release, avoid using the
Yahoo IM component until patched, and use code analysis tools to
verify third-party software, such as Trillian and its plug-ins.
For more information, please contact Ralph Massaro
<ralph.massaro@xxxxxxxxxxxxxxxx>.
The public key to verify the authenticity of this email is located at
https://www.mylogiclibrary.com/pgp-pub.txt.