####################################################################### Luigi Auriemma Application: RSniff (Remote Sniff) http://www.cse.sc.edu/~madamanc/projects.html Versions: 1.0 Platforms: Linux Bug: Denial of Service Exploitation: remote Date: 09 Apr 2004 Author: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduction 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduction =============== Rsniff is a remote sniffer for Linux written by Rajesh Kumar Madamanchi. ####################################################################### ====== 2) Bug ====== Look the following code in server.c: 153 { 154 printf ("RSniff Server: Authentication failed!\n"); 155 continue; 156 } This operation happens when a client connects to the Rsniff server and sends a command different than AUTHENTICATE (a 32 bit number equal to zero) or simply closes the connection without sending data. The result is the restart of the binding loop, so the socket will be recreated BUT the old socket will not be closed. After 1024 connections the server will finish all the available file descriptors and will not accept new clients. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/emptyconn.zip ####################################################################### ====== 4) Fix ====== Add "close (new_sockfd);" at line 156: 153 { 154 printf ("RSniff Server: Authentication failed!\n"); 155 close (new_sockfd); /* PATCH */ 156 continue; 157 } However Rajesh has been contacted and will release a new version soon. #######################################################################