cfingerd 1.3.2

From: Salvatore Sanfilippo -antirez- (md5330at_private)
Date: Thu Jul 01 1999 - 15:11:26 PDT

  • Next message: stealthat_private: "BSD-fileflags"

    Hi,
    
    	there is a remote buffer over flow in cfingerd 1.3.2
    	in search_fake():
    
    int search_fake(char *username)
    {
        char parsed[80];
    
        bzero(parsed, 80);
        sscanf(username, "%[^.].%*[^\r\n]\r\n", parsed);
    ...
    
    
    called from process_username(), that is called from main:
    
    int main(int argc, char *argv[])
    {
        char username[100], syslog_str[200];
    ...
    
        if (!emulated) {
            if (!fgets(username, sizeof(username), stdin)) {
    
    ...
        /* Check the finger information coming in and return its type */
        un_type = process_username(username);
    
    
    	see parsed[80] and username[100].
    	Anyway search_illegal() is called before than search_fake()
    	so only [A-z0-9] and many other char can be used in oreder to
    	execute arbitrary code.
    
    	Debian is not vulnerable because a patch fix this and other
    	cfingerd weakness (i think it's an example of bad coding)
    	but searching in bugtraq archive i haven't found anything.
    
    	I take opportunity to inform that i'm developing a
    	secure (i hope) finger daemon: mayfingerd. In order to
    	make mayfingerd more portable i need some unprivileged
    	account in hosts running *BSD, Solaris, AIX etc. Bugtraq
    	readers can help me?
    
    	I hope it will be released together with hping2 the
    	next month.
    
    	Sorry for my bad english forever :)
    
    have a good summer,
    antirez
    
    --
    Salvatore Sanfilippo antirez | md5330at_private | antirezat_private
    try hping: http://www.kyuzz.org/antirez           antirezat_private
    



    This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 14:51:23 PDT