Off-by-one bug in Halo 1.04
#######################################################################
Luigi Auriemma
Application: Halo: Combat Evolved
http://www.bungie.net/Games/HaloPC/
Versions: <= 1.4
Platforms: Windows and MacOS
Bug: off-by-one (Denial of Service)
Risk: medium/high
Exploitation: remote, versus server
Date: 09 September 2004
Author: Luigi Auriemma
e-mail: aluigi@xxxxxxxxxxxxxx
web: http://aluigi.altervista.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
Halo is the widely known game originally developed by Bungie Studios
and ported on PC by Gearbox Software (http://www.gearboxsoftware.com).
It has been released in September 2003.
#######################################################################
======
2) Bug
======
Halo uses the Gamespy SDK and moreover the handshake algorithm provided
in this library (http://aluigi.altervista.org/papers/gssdkcr.h) to let
players to join servers.
The off-by-one bug is located just in the client's response (the last
stage of this handshake) because if it is longer than 32 bytes causes
the immediate crash of the server.
#######################################################################
===========
3) The Code
===========
http://aluigi.altervista.org/poc/haloboom.zip
#######################################################################
======
4) Fix
======
Patch 1.05 for both Win32 and MacOS.
#######################################################################
---
Luigi Auriemma
http://aluigi.altervista.org