Crysis versions 1.21 and below suffer from an information disclosure vulnerability.
3f1ae2ce1c1f1f6a77617fb7cad5138ddc00b4a18fe3d7b84fe64601770236b3
#######################################################################
Luigi Auriemma
Application: Crysis
http://www.ea.com/crysis/home.jsp
Versions: <= 1.21 (1.1.1.6156 showed as gamever)
Platforms: Windows
Bug: informations disclosure
Exploitation: remote versus both clients and servers
Date: 15 Jun 2008
Author: Luigi Auriemma
e-mail: aluigi@autistici.org
web: aluigi.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
Crysis is a recent FPS game developed by Crytek (http://www.crytek.com)
and released at November 2007.
This game is well known for being a "computer killer" due to its high
hardware requirements but also for having various problems with
cheaters.
#######################################################################
======
2) Bug
======
Crysis is affected by a strange design error which consists in
appending various internal network informations in its disconnect and
error packets.
For example, if we send a keyexchange packet (0x8c) without having sent
the previous join packet (0x07) the server will reply with a
disconnect packet (0x08) containing a "KeyExchange1 with no connection"
error message followed by usually 16 lines of internal logs which
include various real-time informations like IP addresses, nicknames and
status of the clients (which so can be disconnected through spoofed
disconnect packets), details about PunkBuster like paths, screenshosts,
bans, checks and GUIDs of the players, status of the Gamespy SDK
(stats, failed cdkey checks, communication with the master server and
so on) and other plus or less sensitive informations.
Naturally this problem affects both servers and clients so is possible
to see also the real-time network logs of any client which is playing
on a server since both the IP and the port are visible in its logs in
some moments.
#######################################################################
===========
3) The Code
===========
http://aluigi.org/poc/crysislog.zip
#######################################################################
======
4) Fix
======
No fix
#######################################################################
---
Luigi Auriemma
http://aluigi.org