|
Message-ID: <4ADC2912.3050509@kernel.sg> Date: Mon, 19 Oct 2009 16:53:38 +0800 From: Eugene Teo <eugeneteo@...nel.sg> To: oss-security@...ts.openwall.com CC: "Steven M. Christey" <coley@...us.mitre.org> Subject: CVE request: kernel: AF_UNIX: Fix deadlock on connecting to shutdown socket Quoting from the patch submitted: "...a deadlock bug in UNIX domain socket, which makes able to DoS attack against the local machine by non-root users. ... Why this happens: Error checks between unix_socket_connect() and unix_wait_for_peer() are inconsistent. The former calls the latter to wait until the backlog is processed. Despite the latter returns without doing anything when the socket is shutdown, the former doesn't check the shutdown state and just retries calling the latter forever." How to reproduce: 1. Make a listening AF_UNIX/SOCK_STREAM socket with an abstruct namespace(*), and shutdown(2) it. 2. Repeat connect(2)ing to the listening socket from the other sockets until the connection backlog is full-filled. 3. connect(2) takes the CPU forever. If every core is taken, the system hangs. Reproducer: http://patchwork.kernel.org/patch/54678/ You will need to add in the missing header files: #include <string.h> #include <stdio.h> #include <sys/un.h> #include <sys/types.h> #include <sys/socket.h> Reference: https://bugzilla.redhat.com/show_bug.cgi?id=529626 Thanks, Eugene
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.