Skip to content

Instantly share code, notes, and snippets.

@dvyukov
Created January 12, 2016 10:49
Show Gist options
  • Save dvyukov/0bfc7714a09769ed80c0 to your computer and use it in GitHub Desktop.
Save dvyukov/0bfc7714a09769ed80c0 to your computer and use it in GitHub Desktop.
/*
mmap(&(0x7f0000000000)=nil, (0x1e000), 0x3, 0x32, 0xffffffffffffffff, 0x0)
r0 = socket(0xa, 0x1, 0x6)
bind(r0, &(0x7f0000018000)="0a0033d6efe55c65000000000000000000000000000000014d3aa6ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", 0x80)
connect(r0, &(0x7f0000017000-0x1c)="0a0033d60e32665600000000000000000000000000000001bffed7fd", 0x1c)
remap_file_pages(&(0x7f0000009000)=nil, (0x1000), 0x4, 0x9, 0x100)
readahead(r0, 0x1, 0xfffffffffffffffc)
setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f0000008000)=0x4, 0x4)
sendto(r0, &(0x7f0000018000-0x7e)="5fb2a8739cb82b9265a174e31e8840f70c985969321a275144c0a933c2bb4a419ce2e504326fab0321f709e8652ab22c1a4a174d8741a646ff386d3c188631378b5f577672974330c62c76f0e2ff680d5da135a3b75667313fe3bed579d46e57577bb8ea7140c8de83605630cd3984732b0f81694c0e74df44912f9fce9d53", 0x7f, 0x8000, &(0x7f0000012000+0x778)="1000", 0x2)
read(r0, &(0x7f0000012000+0x225)=nil, 0x21)
fcntl$getownex(0xffffffffffffffff, 0x10, &(0x7f0000018000)={0x0, 0x0})
r1 = socket$sctp(0x2, 0x5, 0x84)
setsockopt$ip_msfilter(r1, 0x0, 0x29, &(0x7f0000019000)={0x0, 0x0, 0x0, 0x0, []}, 0x10)
r2 = fcntl$dupfd(r1, 0x406, r0)
ioctl$TIOCGSID(r2, 0x540f, &(0x7f000001c000+0xa18)=<r3=>0x0)
ptrace$getregset(0x4204, r3, 0x2, &(0x7f000001b000+0x8ae)={&(0x7f000001b000)=nil, 0x38})
r4 = dup(r0)
mmap(&(0x7f000001e000)=nil, (0x1000), 0x3, 0x32, 0xffffffffffffffff, 0x0)
mmap(&(0x7f000001e000)=nil, (0x1000), 0x3, 0x32, 0xffffffffffffffff, 0x0)
pipe2(&(0x7f0000000000+0x891)={<r5=>0x0, <r6=>0x0}, 0x80000)
mmap(&(0x7f000001f000)=nil, (0x1000), 0x3, 0x32, 0xffffffffffffffff, 0x0)
read(r0, &(0x7f000001f000)=nil, 0xf0)
getsockopt$ipv6_int(r0, 0x29, 0x3e, &(0x7f000001d000+0x7b7)=0x0, &(0x7f000001d000+0xc50)=nil)
splice(r0, 0x0, r6, 0x0, 0x3, 0x2)
setsockopt$SCTP_AUTH_ACTIVE_KEY(r4, 0x84, 0x18, &(0x7f0000018000)={0xe, 0x6}, 0x8)
r7 = memfd_create(&(0x7f0000005000-0xf)="2f7b776c616e3173656c696e757800", 0x2)
write$fuse_notify_retrieve(r5, &(0x7f000001d000-0x30)={0x30, 0x2, 0x0, 0xc5, 0x7, 0xffffffffffffffa7, 0x9}, 0x30)
recvmmsg(r0, &(0x7f0000013000+0x301)=[{&(0x7f0000013000+0xe63)=nil, 0x8, &(0x7f0000013000+0x407)=[{&(0x7f0000013000)=nil, 0xc1}, {&(0x7f0000014000-0x4d)=nil, 0xa6}, {&(0x7f0000013000+0xdcd)=nil, 0xb8}], 0x3, &(0x7f0000013000)=nil, 0xd9, 0x390}, {&(0x7f0000014000-0x80)=nil, 0x80, &(0x7f0000013000+0x907)=[{&(0x7f0000014000-0xd)=nil, 0x1d}], 0x1, &(0x7f0000014000-0x1000)=nil, 0x1000, 0x2}, {&(0x7f0000014000-0x80)=nil, 0x80, &(0x7f0000013000)=[{&(0x7f0000014000-0x38)=nil, 0xa4}, {&(0x7f0000014000-0x43)=nil, 0x43}], 0x2, &(0x7f0000013000+0xdcc)=nil, 0xe0, 0x7}], 0x3, 0x100)
ioctl$TCSETAF(r7, 0x5404, &(0x7f0000013000-0x11)={0x1169, 0x3, 0x0, 0x7, 0x44, 0x0, 0x777, 0x7, 0x0, 0x12bb})
ioctl$KDSIGACCEPT(r7, 0x4b4e, 0x1)
pivot_root(&(0x7f0000013000)="2e2f66696c653000", &(0x7f0000013000+0x6ac)="2e2f66696c653000")
*/
// autogenerated by syzkaller (http://github.com/google/syzkaller)
#include <unistd.h>
#include <sys/syscall.h>
#include <string.h>
#include <stdint.h>
#include <pthread.h>
long r[99];
int main()
{
memset(r, -1, sizeof(r));
r[0] = syscall(SYS_mmap, 0x20000000ul, 0x1e000ul, 0x3ul, 0x32ul, 0xfffffffffffffffful, 0x0ul);
r[1] = syscall(SYS_socket, 0xaul, 0x1ul, 0x6ul, 0, 0, 0);
memcpy((void*)0x20018000, "\x0a\x00\x33\xd6\xef\xe5\x5c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x4d\x3a\xa6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 128);
r[3] = syscall(SYS_bind, r[1], 0x20018000ul, 0x80ul, 0, 0, 0);
memcpy((void*)0x20016fe4, "\x0a\x00\x33\xd6\x0e\x32\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xbf\xfe\xd7\xfd", 28);
r[5] = syscall(SYS_connect, r[1], 0x20016fe4ul, 0x1cul, 0, 0, 0);
r[6] = syscall(SYS_remap_file_pages, 0x20009000ul, 0x1000ul, 0x4ul, 0x9ul, 0x100ul, 0);
r[7] = syscall(SYS_readahead, r[1], 0x1ul, 0xfffffffffffffffcul, 0, 0, 0);
*(uint32_t*)0x20008000 = (uint32_t)0x4;
r[9] = syscall(SYS_setsockopt, r[1], 0x1ul, 0x8ul, 0x20008000ul, 0x4ul, 0);
memcpy((void*)0x20017f82, "\x5f\xb2\xa8\x73\x9c\xb8\x2b\x92\x65\xa1\x74\xe3\x1e\x88\x40\xf7\x0c\x98\x59\x69\x32\x1a\x27\x51\x44\xc0\xa9\x33\xc2\xbb\x4a\x41\x9c\xe2\xe5\x04\x32\x6f\xab\x03\x21\xf7\x09\xe8\x65\x2a\xb2\x2c\x1a\x4a\x17\x4d\x87\x41\xa6\x46\xff\x38\x6d\x3c\x18\x86\x31\x37\x8b\x5f\x57\x76\x72\x97\x43\x30\xc6\x2c\x76\xf0\xe2\xff\x68\x0d\x5d\xa1\x35\xa3\xb7\x56\x67\x31\x3f\xe3\xbe\xd5\x79\xd4\x6e\x57\x57\x7b\xb8\xea\x71\x40\xc8\xde\x83\x60\x56\x30\xcd\x39\x84\x73\x2b\x0f\x81\x69\x4c\x0e\x74\xdf\x44\x91\x2f\x9f\xce\x9d\x53", 127);
memcpy((void*)0x20012778, "\x10\x00", 2);
r[12] = syscall(SYS_sendto, r[1], 0x20017f82ul, 0x7ful, 0x8000ul, 0x20012778ul, 0x2ul);
r[13] = syscall(SYS_read, r[1], 0x20012225ul, 0x21ul, 0, 0, 0);
r[14] = syscall(SYS_fcntl, 0xfffffffffffffffful, 0x10ul, 0x20018000ul, 0, 0, 0);
r[15] = syscall(SYS_socket, 0x2ul, 0x5ul, 0x84ul, 0, 0, 0);
*(uint32_t*)0x20019000 = (uint32_t)0x0;
*(uint32_t*)0x20019004 = (uint32_t)0x0;
*(uint32_t*)0x20019008 = (uint32_t)0x0;
*(uint32_t*)0x2001900c = (uint32_t)0x0;
r[20] = syscall(SYS_setsockopt, r[15], 0x0ul, 0x29ul, 0x20019000ul, 0x10ul, 0);
r[21] = syscall(SYS_fcntl, r[15], 0x406ul, r[1], 0, 0, 0);
r[22] = syscall(SYS_ioctl, r[21], 0x540ful, 0x2001ca18ul, 0, 0, 0);
if (r[22] != -1)
r[23] = *(uint32_t*)0x2001ca18;
*(uint64_t*)0x2001b8ae = (uint64_t)0x2001b000;
*(uint64_t*)0x2001b8b6 = (uint64_t)0x38;
r[26] = syscall(SYS_ptrace, 0x4204ul, r[23], 0x2ul, 0x2001b8aeul, 0, 0);
r[27] = syscall(SYS_dup, r[1], 0, 0, 0, 0, 0);
r[28] = syscall(SYS_mmap, 0x2001e000ul, 0x1000ul, 0x3ul, 0x32ul, 0xfffffffffffffffful, 0x0ul);
r[29] = syscall(SYS_mmap, 0x2001e000ul, 0x1000ul, 0x3ul, 0x32ul, 0xfffffffffffffffful, 0x0ul);
r[30] = syscall(SYS_pipe2, 0x20000891ul, 0x80000ul, 0, 0, 0, 0);
if (r[30] != -1)
r[31] = *(uint32_t*)0x20000891;
if (r[30] != -1)
r[32] = *(uint32_t*)0x20000895;
r[33] = syscall(SYS_mmap, 0x2001f000ul, 0x1000ul, 0x3ul, 0x32ul, 0xfffffffffffffffful, 0x0ul);
r[34] = syscall(SYS_read, r[1], 0x2001f000ul, 0xf0ul, 0, 0, 0);
r[35] = syscall(SYS_getsockopt, r[1], 0x29ul, 0x3eul, 0x2001d7b7ul, 0x2001dc50ul, 0);
r[36] = syscall(SYS_splice, r[1], 0x0ul, r[32], 0x0ul, 0x3ul, 0x2ul);
*(uint32_t*)0x20018000 = (uint32_t)0xe;
*(uint16_t*)0x20018004 = (uint16_t)0x6;
r[39] = syscall(SYS_setsockopt, r[27], 0x84ul, 0x18ul, 0x20018000ul, 0x8ul, 0);
memcpy((void*)0x20004ff1, "\x2f\x7b\x77\x6c\x61\x6e\x31\x73\x65\x6c\x69\x6e\x75\x78\x00", 15);
r[41] = syscall(SYS_memfd_create, 0x20004ff1ul, 0x2ul, 0, 0, 0, 0);
*(uint32_t*)0x2001cfd0 = (uint32_t)0x30;
*(uint32_t*)0x2001cfd4 = (uint32_t)0x2;
*(uint64_t*)0x2001cfd8 = (uint64_t)0x0;
*(uint64_t*)0x2001cfe0 = (uint64_t)0xc5;
*(uint64_t*)0x2001cfe8 = (uint64_t)0x7;
*(uint64_t*)0x2001cff0 = (uint64_t)0xffffffffffffffa7;
*(uint32_t*)0x2001cff8 = (uint32_t)0x9;
r[49] = syscall(SYS_write, r[31], 0x2001cfd0ul, 0x30ul, 0, 0, 0);
*(uint64_t*)0x20013301 = (uint64_t)0x20013e63;
*(uint32_t*)0x20013309 = (uint32_t)0x8;
*(uint64_t*)0x20013311 = (uint64_t)0x20013407;
*(uint64_t*)0x20013319 = (uint64_t)0x3;
*(uint64_t*)0x20013321 = (uint64_t)0x20013000;
*(uint64_t*)0x20013329 = (uint64_t)0xd9;
*(uint32_t*)0x20013331 = (uint32_t)0x390;
*(uint64_t*)0x20013339 = (uint64_t)0x20013f80;
*(uint32_t*)0x20013341 = (uint32_t)0x80;
*(uint64_t*)0x20013349 = (uint64_t)0x20013907;
*(uint64_t*)0x20013351 = (uint64_t)0x1;
*(uint64_t*)0x20013359 = (uint64_t)0x20013000;
*(uint64_t*)0x20013361 = (uint64_t)0x1000;
*(uint32_t*)0x20013369 = (uint32_t)0x2;
*(uint64_t*)0x20013371 = (uint64_t)0x20013f80;
*(uint32_t*)0x20013379 = (uint32_t)0x80;
*(uint64_t*)0x20013381 = (uint64_t)0x20013000;
*(uint64_t*)0x20013389 = (uint64_t)0x2;
*(uint64_t*)0x20013391 = (uint64_t)0x20013dcc;
*(uint64_t*)0x20013399 = (uint64_t)0xe0;
*(uint32_t*)0x200133a1 = (uint32_t)0x7;
*(uint64_t*)0x20013407 = (uint64_t)0x20013000;
*(uint64_t*)0x2001340f = (uint64_t)0xc1;
*(uint64_t*)0x20013417 = (uint64_t)0x20013fb3;
*(uint64_t*)0x2001341f = (uint64_t)0xa6;
*(uint64_t*)0x20013427 = (uint64_t)0x20013dcd;
*(uint64_t*)0x2001342f = (uint64_t)0xb8;
*(uint64_t*)0x20013907 = (uint64_t)0x20013ff3;
*(uint64_t*)0x2001390f = (uint64_t)0x1d;
*(uint64_t*)0x20013000 = (uint64_t)0x20013fc8;
*(uint64_t*)0x20013008 = (uint64_t)0xa4;
*(uint64_t*)0x20013010 = (uint64_t)0x20013fbd;
*(uint64_t*)0x20013018 = (uint64_t)0x43;
r[83] = syscall(SYS_recvmmsg, r[1], 0x20013301ul, 0x3ul, 0x100ul, 0, 0);
*(uint16_t*)0x20012fef = (uint16_t)0x1169;
*(uint16_t*)0x20012ff1 = (uint16_t)0x3;
*(uint16_t*)0x20012ff3 = (uint16_t)0x0;
*(uint16_t*)0x20012ff5 = (uint16_t)0x7;
*(uint8_t*)0x20012ff7 = (uint8_t)0x44;
*(uint8_t*)0x20012ff8 = (uint8_t)0x0;
*(uint8_t*)0x20012ff9 = (uint8_t)0x777;
*(uint8_t*)0x20012ffa = (uint8_t)0x7;
*(uint32_t*)0x20012ffb = (uint32_t)0x0;
*(uint8_t*)0x20012fff = (uint8_t)0x12bb;
r[94] = syscall(SYS_ioctl, r[41], 0x5404ul, 0x20012feful, 0, 0, 0);
r[95] = syscall(SYS_ioctl, r[41], 0x4b4eul, 0x1ul, 0, 0, 0);
memcpy((void*)0x20013000, "\x2e\x2f\x66\x69\x6c\x65\x30\x00", 8);
memcpy((void*)0x200136ac, "\x2e\x2f\x66\x69\x6c\x65\x30\x00", 8);
r[98] = syscall(SYS_pivot_root, 0x20013000ul, 0x200136acul, 0, 0, 0, 0);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment