Sparklet Format String Bug Lets Remote Users Execute Arbitrary Code
|
|
SecurityTracker Alert ID: 1016443 |
|
SecurityTracker URL: http://securitytracker.com/id/1016443
|
|
CVE Reference:
CVE-2006-3573
(Links to External Site)
|
Updated: Aug 7 2008
|
Original Entry Date: Jul 6 2006
|
Impact:
Denial of service via network, Execution of arbitrary code via network, User access via network
|
Vendor Confirmed: Yes Exploit Included: Yes
|
Version(s): 0.9.4try3 and prior versions
|
Description:
Luigi Auriemma reported a vulnerability in Sparklet. A remote user can execute arbitrary code on connected clients.
The client display code in 'agl_text.cpp' contains a format string vulnerability. The WriteText() function includes an unsafe function call to allegro_gl_printf_ex() based on user-supplied input without properly filtering the input and without providing the appropriate format string specifier.
A remote user can send specially crafted command parameters to the target server to cause denial of service conditions or arbitrary code execution on the client systems connected to the target server.
A demonstration exploit nickname is provided:
%n%n%n%n%n
|
Impact:
A remote user can cause the connected client systems to crash or execute arbitrary code.
|
Solution:
No solution was available at the time of this entry.
The vendor is working on a fix.
|
Vendor URL: sparklet.sourceforge.net/ (Links to External Site)
|
Cause:
Input validation error, State error
|
Underlying OS:
Linux (Any), UNIX (Any), Windows (Any)
|
|
Message History:
None.
|
Source Message Contents
|
Date: Thu, 6 Jul 2006 18:56:56 +0200
Subject: Format string bug in Sparklet 0.9.4try3
|
#######################################################################
Luigi Auriemma
Application: Sparklet
http://sparklet.sourceforge.net
Versions: <= 0.9.4try3
Platforms: Windows, *nix, *BSD and more
Bug: format string in client's display
Exploitation: remote, versus clients
Date: 06 Jul 2006
Author: Luigi Auriemma
e-mail: aluigi@autistici.org
web: aluigi.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
Sparklet is a nice multiplayer 2d shooting game released under the GPL
license.
#######################################################################
======
2) Bug
======
The game is affected by a format string vulnerability located in the
function which visualizes the text strings on the client screen during
the match.
The problem is located in agl_text.cpp where is missed the "%s" format
argument:
void WriteText(const Point<float> &DstLoc, const std::string &Text, const int &Font, const ULONG &Color) {
...
allegro_gl_printf_ex(fnt, x, y, 0, Text.c_str());
...
Through this bug an attacker on a server or a client (the server is not
vulnerable since it simply forwards all the received data to all the
clients connected to it) can crash or execute malicious code versus any
client which is playing on the server.
#######################################################################
===========
3) The Code
===========
Use the nickname %n%n%n%n%n
#######################################################################
======
4) Fix
======
A new version will be released soon
#######################################################################
---
Luigi Auriemma
http://aluigi.org
http://mirror.aluigi.org
|
|