DoS in Rsniff 1.0
#######################################################################
Luigi Auriemma
Application: RSniff (Remote Sniff)
http://www.cse.sc.edu/~madamanc/projects.html
Versions: 1.0
Platforms: Linux
Bug: Denial of Service
Risk: low
Exploitation: remote
Date: 09 Apr 2004
Author: Luigi Auriemma
e-mail: aluigi@xxxxxxxxxxxxxx
web: http://aluigi.altervista.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.altervista.org/poc/emptyconn.zip
#######################################################################
======
4) Fix
======
Add "close (new_sockfd);" at line 156:
153 {
154 printf ("RSniff Server: Authentication failed!\n");
155 continue;
156 close (new_sockfd); /* PATCH */
157 }
However Rajesh has been contacted and will release a new version soon.
#######################################################################
---
Luigi Auriemma
http://aluigi.altervista.org