Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen
  1. #1
    Luigi Auriemma
    Format string bug in EpicGames Unreal engine
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Format string bug in EpicGames Unreal engine


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

    Luigi Auriemma

    Application: Unreal engine
    http://unreal.epicgames.com
    Games: - America's Army
    - DeusEx
    - Devastation
    - Magic Battlegrounds
    - Mobile Forces
    - Nerf Arena Blast
    - Postal 2
    - Rainbow Six: Raven Shield
    - Rune
    - Sephiroth: 3rd episode the Crusade
    - Star Trek: Klingon Honor Guard
    - Tactical Ops
    - TNN Pro Hunter
    - Unreal 1
    - Unreal II XMP
    - Unreal Tournament
    - Unreal Tournament 2003
    - Wheel of Time
    - X-com Enforcer
    - XIII
    (the list contains all the Unreal based games with
    multiplayer support released until now)
    Platforms: Windows, Linux and MacOS
    Bug: remote format string bug
    Risk: critical
    Exploitation: remote, versus server
    Date: 10 Mar 2004
    Author: Luigi Auriemma
    e-mail: aluigi@altervista.org
    web: http://aluigi.altervista.org


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


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


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

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


    The Unreal engine is the famous game engine developed by EpicGames
    (http://www.epicgames.com) and used by a wide number of games.


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

    ======
    2) Bug
    ======


    The problem is a format string bug in the Classes management.
    Each time a client connects to a server it sends the names of the
    objects it uses (called classes).

    If an attacker uses a class name containing format parameters (as %n,
    %s and so on) he will be able to crash or also to execute malicious
    code on the remote server.


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

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


    http://aluigi.altervista.org/poc/unrfs-poc.zip

    This proof-of-concept is a proxy server able to modify the Unreal
    packets in real-time allowing the insertion of "%n" into the class
    names sent by the client to the server causing the remote crash.
    It should be compatible with any game based on the Unreal engine and
    requires the same game running on the server to be used.


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

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


    This bug was signaled to EpicGames EXACTLY the 2th September 2003
    (today is the 10th March so over 6 months ago) but at the beginning it
    was underrated and was taken a bit more seriously only at November.

    All the developers of the vulnerable games have been alerted by
    EpicGames through their internal mailing-list.


    About UT and UT2003:
    EpicGames refused to release a quick-fix for UnrealTournament and
    UnrealTournament 2003 so the fix was inserted in the planned patch
    as they do for graphic bugs and other small problems... the patch has
    not been released yet and is impossible to know when it will be ready.


    QUICK FIXES ARE THE SOLUTION: SECURITY BUGS ARE *NOT* COMMON BUGS!!!


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


    ---
    Luigi Auriemma
    http://aluigi.altervista.org


  2. #2
    Sebastian Käppler
    Format string bug in EpicGames Unreal engine
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Format string bug in EpicGames Unreal engine

    In-Reply-To: <20040310163053.6db31644.aluigi@altervista.org>

    It seems that all servers running the MOD "TacticalOps" for UT1 are not affected by the vulnerability. I ran a local test server and got the following output:

    "PreLogin failure: Player Class: %n%n%n.s_Player_T is not valid! - reinstall Tact
    ical Ops properly. (NEEDPW)"

    it seems that the UT engine calls the "PreLogin" function of the currently active GameInfo class (which is written in UnrealScript) before processing the string.

    TacticalOps code:

    event PreLogin (string Options, string Address, out string Error, out string FailCode)
    {
    local string Value;

    Super.PreLogin(Options,Address,Error,FailCode);
    Value=ParseOption(Options,"Class");
    if ( !Value ~= "s_SWAT.s_Player_T" )
    {
    Error="Player Class:" @ Value @ "is not valid! - reinstall Tactical Ops properly.";
    return;
    }
    }

    So basicially only a new GameInfo class writtin in UnrealScript containing the following should stop the crash problem:

    event PreLogin (string Options, string Address, out string Error, out string FailCode)
    {
    Super.PreLogin(Options,Address,Error,FailCode);
    if(InStr(ParseOption(Options,"Class"),"%")
    Error = "Crash exploit";
    }





    >Application: Unreal engine
    > http://unreal.epicgames.com
    >Games: - America's Army
    > - DeusEx
    > - Devastation
    > - Magic Battlegrounds
    > - Mobile Forces
    > - Nerf Arena Blast
    > - Postal 2
    > - Rainbow Six: Raven Shield
    > - Rune
    > - Sephiroth: 3rd episode the Crusade
    > - Star Trek: Klingon Honor Guard
    > - Tactical Ops
    > - TNN Pro Hunter
    > - Unreal 1
    > - Unreal II XMP
    > - Unreal Tournament
    > - Unreal Tournament 2003
    > - Wheel of Time
    > - X-com Enforcer
    > - XIII
    > (the list contains all the Unreal based games with
    > multiplayer support released until now)
    >Platforms: Windows, Linux and MacOS
    >Bug: remote format string bug
    >Risk: critical
    >Exploitation: remote, versus server
    >Date: 10 Mar 2004
    >Author: Luigi Auriemma
    > e-mail: aluigi@altervista.org
    > web: http://aluigi.altervista.org
    >
    >



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics