Re: Major remote root vunerability found in sendmail

From: Steven Procter (stevenat_private)
Date: Mon Mar 03 2003 - 13:26:31 PST

  • Next message: Discini, Sonny: "Feature Request"

    The following regular expression:
    
    .*Sendmail.*(Switch\-((1\.)|(2\.(0\.|1\.[0-4])))|(\/|UCB | )([5-7]|8\.([0-9](\.|;|$)|1[01]\.|12\.[0-7](\/| |\.|\+)))).*
    
    Matches the following string (which I constructed from a sendmail
    server's output but believe should not be considered vulnerable):
    
    ns.somehost.com ESMTP Sendmail 8.12.8/SuSE Linux 0.6; Mon, 3 Mar 2003 5:17:17 -0800
    
    Because it thinks that the 5 in 5:45:18 is the version of the
    sendmail.  That is the ".*" after Sendmail consumes everything through
    "2003" and then the " 5" is matched by "(\/|UCB | )([5-7]...".
    
    In other words, the regular expression will generate false positives
    for this server between 5 and 7 in the morning.
    
    Following is a little nasl script which exhibits the problem.  Try
    changing the time from 5 to 8...
    
    --Steven
    
    --- cut here ---
    
    re = ".*Sendmail.*(Switch\-((1\.)|(2\.(0\.|1\.[0-4])))|(\/|UCB | )([5-7]|8\.([0-9](\.|;|$)|1[01]\.|12\.[0-7](\/| |\.|\+)))).*";
    
    banner = "ns.somehost.com ESMTP Sendmail 8.12.8/SuSE Linux 0.6; Mon, 3 Mar 2003 5:17:17 -0800";
    
    if (ereg(pattern:re, string:banner))
    	display("matches\n");
    



    This archive was generated by hypermail 2b30 : Mon Mar 03 2003 - 13:23:38 PST