Re: Three problems in OpenSSH's ssh-keysign

From: Theo de Raadt (deraadtat_private)
Date: Tue Jul 02 2002 - 23:11:57 PDT

  • Next message: securityat_private: "Security Update: [CSSA-2002-SCO.31] UnixWare 7.1.1 Open UNIX 8.0.0 : Apache Web Server Chunk Handling Vulnerability / mod_ssl off-by-one error"

    > 3) [Charles Hannum] The protection of host keys is not very good; to
    >    wit:
    > 
    >         key_fd[0] = open(_PATH_HOST_RSA_KEY_FILE, O_RDONLY);
    >         key_fd[1] = open(_PATH_HOST_DSA_KEY_FILE, O_RDONLY);
    >                         
    >         seteuid(getuid());
    >         setuid(getuid()); 
    > 
    >    Although current BSD systems are safe (because they do not permit
    >    PTRACE_ATTACH, et al, on processes that were ever set-id), this may
    >    permit direct reading of the host keys by users on other systems.
    
    First off, we believe that any system which has weak handling of such
    setuid or setgid processes is flawed.  But let me continue before
    anyone freaks out at that strong assertion.
    
    There is a tradeoff being made here.  Either
    
    1) We continue running as root, any exploitable bug in any code after
       that point can gain root.
    
    or
    
    2) We drop root, and any bug after that point can gain those file
       descriptors, and those files.
    
    We choose 2.
    
    That said, we very strongly believe that any system which does not
    have strong de-permit semantics for ptrace and any other such calls
    will continue to have serious security problems in the future.  They
    force application authors to keep large monolithic processes running
    entirely as root.  This is not a sustainable or safe policy.  Time for
    vendors to start fixing those systems, if they are not already fixed.
    
    This way, we do not need to keep very large applications like ssh and
    sshd running as setuid root all the time like ssh.com has to.
    



    This archive was generated by hypermail 2b30 : Tue Jul 02 2002 - 23:18:36 PDT