Description of problem:
If fork() fails xinetd will leak sockets.
Leaked sockets will be inherited by child processes.
Version-Release number of selected component (if applicable):
Easy to reproduce if compiled with the DEBUG_RETRY
option. Otherwise hard to reproduce.
Steps to Reproduce:
1. Compile xinetd with the DEBUG_RETRY option
2. Install xinetd and enable telnet
3. Open a lot of incomming telnet sessions
xinetd leaks filedescriptors and eventually stops
accepting connections. Child processes inherit the
leaked descriptors. (In case of telnet the child
will close the descriptor, so this is not immediately
exploitable by arbitrary users.)
On fork failing xinetd closes the connection
before going back to accept more connections.
Severity set to security, because xinetd services not
running as root could potentially take over the leaked
descriptors and snoop passwords. Priority set to low
because the default install is not believed to be
xinetd update (to 2.3.11) is in progress.
An errata has been issued which should help the problem described in this bug report.
This report is therefore being closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files, please follow the link below. You may reopen
this bug report if the solution does not work for you.