// https://syzkaller.appspot.com/bug?id=83aa676a823eeb2855ab831541b2c8175904c281 // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include uint64_t r[3] = {0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff}; int main(void) { syscall(__NR_mmap, /*addr=*/0x1ffffffff000ul, /*len=*/0x1000ul, /*prot=*/0ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); syscall(__NR_mmap, /*addr=*/0x200000000000ul, /*len=*/0x1000000ul, /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); syscall(__NR_mmap, /*addr=*/0x200001000000ul, /*len=*/0x1000ul, /*prot=*/0ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); const char* reason; (void)reason; intptr_t res = 0; if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } // openat$kvm arguments: [ // fd: const = 0xffffffffffffff9c (8 bytes) // file: ptr[in, buffer] { // buffer: {2f 64 65 76 2f 6b 76 6d 00} (length 0x9) // } // flags: open_flags = 0x0 (4 bytes) // mode: const = 0x0 (2 bytes) // ] // returns fd_kvm memcpy((void*)0x200000000440, "/dev/kvm\000", 9); res = syscall(__NR_openat, /*fd=*/0xffffffffffffff9cul, /*file=*/0x200000000440ul, /*flags=*/0, /*mode=*/0); if (res != -1) r[0] = res; // ioctl$KVM_CREATE_VM arguments: [ // fd: fd_kvm (resource) // cmd: const = 0xae01 (4 bytes) // type: intptr = 0x0 (8 bytes) // ] // returns fd_kvmvm res = syscall(__NR_ioctl, /*fd=*/r[0], /*cmd=*/0xae01, /*type=*/0ul); if (res != -1) r[1] = res; // ioctl$KVM_CAP_SPLIT_IRQCHIP arguments: [ // fd: fd_kvmvm (resource) // cmd: const = 0x4068aea3 (4 bytes) // arg: ptr[in, kvm_enable_cap[KVM_CAP_SPLIT_IRQCHIP, // int64[0:KVM_MAX_IRQ_ROUTES]]] { // kvm_enable_cap[KVM_CAP_SPLIT_IRQCHIP, int64[0:KVM_MAX_IRQ_ROUTES]] { // cap: const = 0x79 (4 bytes) // flags: const = 0x0 (4 bytes) // args: int64 = 0xc75 (8 bytes) // pad = 0x0 (88 bytes) // } // } // ] *(uint32_t*)0x2000000001c0 = 0x79; *(uint32_t*)0x2000000001c4 = 0; *(uint64_t*)0x2000000001c8 = 0xc75; syscall(__NR_ioctl, /*fd=*/r[1], /*cmd=*/0x4068aea3, /*arg=*/0x2000000001c0ul); // ioctl$KVM_CREATE_VCPU arguments: [ // fd: fd_kvmvm (resource) // cmd: const = 0xae41 (4 bytes) // id: intptr = 0x2 (8 bytes) // ] // returns fd_kvmcpu res = syscall(__NR_ioctl, /*fd=*/r[1], /*cmd=*/0xae41, /*id=*/2ul); if (res != -1) r[2] = res; // ioctl$KVM_SET_LAPIC arguments: [ // fd: fd_kvmcpu (resource) // cmd: const = 0x4400ae8f (4 bytes) // arg: ptr[in, kvm_lapic_state] { // kvm_lapic_state { // regs: buffer: {94 1c 10 a0 b6 a6 0a 78 83 e1 3b 8d c1 bf 7b 6f 96 fd // 4c b9 2b 47 f6 8e 03 51 50 d4 8e ac 90 33 27 a7 b5 23 e6 7c 38 86 50 // 1b 61 92 31 c2 0e e4 ea 53 03 06 f8 e1 c8 22 24 7b 4d 60 82 99 2a 47 // 75 81 86 b3 71 54 81 00 b0 aa c2 b1 5e fb 63 31 12 91 9d c0 d4 92 4d // 60 07 cf bc 7d f5 20 5f 62 6c cd 19 92 96 51 94 15 15 a9 60 cb a2 20 // 0b b9 5c fb 42 53 8c 2b 8b b9 72 b5 54 f9 8c fd d5 59 55 c9 c6 1c 21 // df 05 2e 80 be 25 53 fb ef af f6 b3 67 3e ac 0c de 87 ca da 0f 93 ed // 6e d3 14 7d 96 5a 85 0d bf d1 2c 5b 19 e5 6b 17 54 10 54 cf 11 fd 83 // b4 74 c1 e0 c3 e4 81 f5 36 f3 83 68 9a 44 aa 05 e2 21 72 20 85 61 58 // 31 a1 4e d8 20 c3 39 e5 83 8d 23 80 0f 01 7f 7c 20 8c 3a 81 4c 99 83 // 3e 63 6c 6d 43 f5 34 a4 a0 62 9e 50 8e 50 ec d1 ff 19 8d e5 e8 b3 6d // 37 26 ad 6e 3e 79 50 b6 e4 db bb 85 6c f4 70 79 fb e2 f5 dd 42 05 12 // 9c 99 0e d2 2a b9 18 8f 1b 6e ee 89 6c d9 f2 cf 01 ef c0 c1 9d b8 fd // bb ba 13 88 c8 f1 d5 32 15 50 a9 f9 e1 53 d2 6f 58 65 e7 9a 4b cf 0f // 00 3b b9 7e a6 98 78 5d a0 cd 6f ab da 2a 4e 27 69 8c 0f af bf 0f d1 // 90 bf 62 81 3b da 72 20 be 63 5d 7d ce 18 07 d6 03 62 e1 48 10 e3 5d // 44 3c db 31 d5 b9 1f cc 21 e8 97 b3 81 9c df f6 d5 d5 dc c7 e0 93 7e // 54 3d d4 e9 f7 0e 70 77 84 0b ce 10 41 be ee 8c c2 49 b0 7c de e2 a8 // 6a 36 15 e3 b6 cf 00 fa cc 88 44 9e eb 93 b7 2a ac f7 20 c2 9c 77 78 // e3 71 18 2b 7b 84 71 ee 18 72 56 8c de e8 e9 65 73 b8 ea ca dc 52 b9 // 0c b9 04 49 f4 af 9d 9f 01 8f 22 2e 24 65 8d 53 65 1e 56 5e 9d a3 17 // 42 49 de ed c1 6a d3 54 f1 76 f8 7a b4 d5 ab 7c a4 64 0d 80 0b 0d 39 // e8 1a 3d fa 60 03 3d cf 2e 47 39 f8 fd 4d 49 2e 4e f8 ca c1 89 78 47 // 50 1b 73 b0 15 92 b0 fa 29 10 e9 66 70 6a f2 0a 34 de 6f f8 c5 82 b3 // 94 cc be 3e e2 24 ff f3 b0 21 09 a3 22 d6 b9 11 8a 65 d5 9e a1 3e 1b // 2a de a7 51 bf 4f 43 58 55 3d 86 df 57 67 cf c9 04 a4 ac 00 32 f9 b6 // 63 16 dc 16 a5 47 03 47 30 ad 6e 14 d9 3c 20 2b c0 5f c6 77 9b 38 e5 // 63 77 67 34 df 3a d2 f3 7a 1b d1 32 1d fa f1 e5 99 60 b7 eb f0 cc 0f // 58 7d 6f 42 b2 9d 20 1e 03 9c fd 71 27 97 e4 c1 b1 34 97 84 4d 1e 9c // 0b 1c 8a bd d7 07 a5 f9 58 b6 40 75 3f 34 9e 32 7c 8f 8c 6a 1b 94 11 // 46 e8 e1 91 98 8c 5d d6 eb 4b 9b 86 e7 29 ed 40 22 fe e3 46 fc 03 ae // 7c 0f 99 87 97 79 3e f8 ac e9 a1 46 61 b6 0b 76 f6 67 0b 2c c2 0d fe // d5 f1 84 f7 f5 ca 56 3e 50 03 6b bc d3 23 43 a9 59 8c 53 0e f5 b0 1d // 99 cd 49 5a 1e cb 86 8c 67 23 a8 bf f9 3b be 93 8d cb df 66 43 33 23 // 65 77 57 4e 23 fe 58 37 7b b1 c1 0a 0e 12 dd 4b b7 bf 6b ca b8 b6 b8 // 5b 1a 74 d1 6c 49 96 4b be a1 0c 40 e3 55 a2 a9 de 48 10 d6 14 db bf // bd 5f 45 8c 2d 32 6d a2 27 60 3a 26 7f ce 5a 0a 42 42 a0 b9 7b 6d f7 // 3d 91 4f 5d e5 3a 25 3a 4d 8f 8e 7d 37 43 1e fc b7 16 d4 71 e8 82 d0 // 87 1f 43 e6 3c 0e ef 73 26 76 d5 2f fe ea 18 de 07 b7 a6 d3 ec e3 41 // 26 af 3b c2 b4 3c b8 89 30 d9 b5 04 6e 61 52 8d 1e 05 1c b9 52 5e c3 // 15 21 f5 86 05 9e e8 cc 81 28 d2 9e 40 57 cd 0f e2 ed ec 0c b7 f7 b5 // 0c fe 70 31 08 08 76 4f 46 d0 f4 00 b4 b8 69 fe 8b da f8 6f c3 b7 f9 // 98 6e 90 bf b8 34 5b 7e e4 2c 65 c9 72 f7 b8 03 12 1d eb 45 30 90 35 // 66 8d 4e 14 d5 73 ca 35 c4 b5 f4 df 5f ee 76 7b a3 46 18 cc e6 33 43 // e6 81 8c a0 ef cd e2 4e 65 3e 5a 59 8d 10 5b 53 08} (length 0x400) // } // } // ] memcpy( (void*)0x200000000480, "\x94\x1c\x10\xa0\xb6\xa6\x0a\x78\x83\xe1\x3b\x8d\xc1\xbf\x7b\x6f\x96\xfd" "\x4c\xb9\x2b\x47\xf6\x8e\x03\x51\x50\xd4\x8e\xac\x90\x33\x27\xa7\xb5\x23" "\xe6\x7c\x38\x86\x50\x1b\x61\x92\x31\xc2\x0e\xe4\xea\x53\x03\x06\xf8\xe1" "\xc8\x22\x24\x7b\x4d\x60\x82\x99\x2a\x47\x75\x81\x86\xb3\x71\x54\x81\x00" "\xb0\xaa\xc2\xb1\x5e\xfb\x63\x31\x12\x91\x9d\xc0\xd4\x92\x4d\x60\x07\xcf" "\xbc\x7d\xf5\x20\x5f\x62\x6c\xcd\x19\x92\x96\x51\x94\x15\x15\xa9\x60\xcb" "\xa2\x20\x0b\xb9\x5c\xfb\x42\x53\x8c\x2b\x8b\xb9\x72\xb5\x54\xf9\x8c\xfd" "\xd5\x59\x55\xc9\xc6\x1c\x21\xdf\x05\x2e\x80\xbe\x25\x53\xfb\xef\xaf\xf6" "\xb3\x67\x3e\xac\x0c\xde\x87\xca\xda\x0f\x93\xed\x6e\xd3\x14\x7d\x96\x5a" "\x85\x0d\xbf\xd1\x2c\x5b\x19\xe5\x6b\x17\x54\x10\x54\xcf\x11\xfd\x83\xb4" "\x74\xc1\xe0\xc3\xe4\x81\xf5\x36\xf3\x83\x68\x9a\x44\xaa\x05\xe2\x21\x72" "\x20\x85\x61\x58\x31\xa1\x4e\xd8\x20\xc3\x39\xe5\x83\x8d\x23\x80\x0f\x01" "\x7f\x7c\x20\x8c\x3a\x81\x4c\x99\x83\x3e\x63\x6c\x6d\x43\xf5\x34\xa4\xa0" "\x62\x9e\x50\x8e\x50\xec\xd1\xff\x19\x8d\xe5\xe8\xb3\x6d\x37\x26\xad\x6e" "\x3e\x79\x50\xb6\xe4\xdb\xbb\x85\x6c\xf4\x70\x79\xfb\xe2\xf5\xdd\x42\x05" "\x12\x9c\x99\x0e\xd2\x2a\xb9\x18\x8f\x1b\x6e\xee\x89\x6c\xd9\xf2\xcf\x01" "\xef\xc0\xc1\x9d\xb8\xfd\xbb\xba\x13\x88\xc8\xf1\xd5\x32\x15\x50\xa9\xf9" "\xe1\x53\xd2\x6f\x58\x65\xe7\x9a\x4b\xcf\x0f\x00\x3b\xb9\x7e\xa6\x98\x78" "\x5d\xa0\xcd\x6f\xab\xda\x2a\x4e\x27\x69\x8c\x0f\xaf\xbf\x0f\xd1\x90\xbf" "\x62\x81\x3b\xda\x72\x20\xbe\x63\x5d\x7d\xce\x18\x07\xd6\x03\x62\xe1\x48" "\x10\xe3\x5d\x44\x3c\xdb\x31\xd5\xb9\x1f\xcc\x21\xe8\x97\xb3\x81\x9c\xdf" "\xf6\xd5\xd5\xdc\xc7\xe0\x93\x7e\x54\x3d\xd4\xe9\xf7\x0e\x70\x77\x84\x0b" "\xce\x10\x41\xbe\xee\x8c\xc2\x49\xb0\x7c\xde\xe2\xa8\x6a\x36\x15\xe3\xb6" "\xcf\x00\xfa\xcc\x88\x44\x9e\xeb\x93\xb7\x2a\xac\xf7\x20\xc2\x9c\x77\x78" "\xe3\x71\x18\x2b\x7b\x84\x71\xee\x18\x72\x56\x8c\xde\xe8\xe9\x65\x73\xb8" "\xea\xca\xdc\x52\xb9\x0c\xb9\x04\x49\xf4\xaf\x9d\x9f\x01\x8f\x22\x2e\x24" "\x65\x8d\x53\x65\x1e\x56\x5e\x9d\xa3\x17\x42\x49\xde\xed\xc1\x6a\xd3\x54" "\xf1\x76\xf8\x7a\xb4\xd5\xab\x7c\xa4\x64\x0d\x80\x0b\x0d\x39\xe8\x1a\x3d" "\xfa\x60\x03\x3d\xcf\x2e\x47\x39\xf8\xfd\x4d\x49\x2e\x4e\xf8\xca\xc1\x89" "\x78\x47\x50\x1b\x73\xb0\x15\x92\xb0\xfa\x29\x10\xe9\x66\x70\x6a\xf2\x0a" "\x34\xde\x6f\xf8\xc5\x82\xb3\x94\xcc\xbe\x3e\xe2\x24\xff\xf3\xb0\x21\x09" "\xa3\x22\xd6\xb9\x11\x8a\x65\xd5\x9e\xa1\x3e\x1b\x2a\xde\xa7\x51\xbf\x4f" "\x43\x58\x55\x3d\x86\xdf\x57\x67\xcf\xc9\x04\xa4\xac\x00\x32\xf9\xb6\x63" "\x16\xdc\x16\xa5\x47\x03\x47\x30\xad\x6e\x14\xd9\x3c\x20\x2b\xc0\x5f\xc6" "\x77\x9b\x38\xe5\x63\x77\x67\x34\xdf\x3a\xd2\xf3\x7a\x1b\xd1\x32\x1d\xfa" "\xf1\xe5\x99\x60\xb7\xeb\xf0\xcc\x0f\x58\x7d\x6f\x42\xb2\x9d\x20\x1e\x03" "\x9c\xfd\x71\x27\x97\xe4\xc1\xb1\x34\x97\x84\x4d\x1e\x9c\x0b\x1c\x8a\xbd" "\xd7\x07\xa5\xf9\x58\xb6\x40\x75\x3f\x34\x9e\x32\x7c\x8f\x8c\x6a\x1b\x94" "\x11\x46\xe8\xe1\x91\x98\x8c\x5d\xd6\xeb\x4b\x9b\x86\xe7\x29\xed\x40\x22" "\xfe\xe3\x46\xfc\x03\xae\x7c\x0f\x99\x87\x97\x79\x3e\xf8\xac\xe9\xa1\x46" "\x61\xb6\x0b\x76\xf6\x67\x0b\x2c\xc2\x0d\xfe\xd5\xf1\x84\xf7\xf5\xca\x56" "\x3e\x50\x03\x6b\xbc\xd3\x23\x43\xa9\x59\x8c\x53\x0e\xf5\xb0\x1d\x99\xcd" "\x49\x5a\x1e\xcb\x86\x8c\x67\x23\xa8\xbf\xf9\x3b\xbe\x93\x8d\xcb\xdf\x66" "\x43\x33\x23\x65\x77\x57\x4e\x23\xfe\x58\x37\x7b\xb1\xc1\x0a\x0e\x12\xdd" "\x4b\xb7\xbf\x6b\xca\xb8\xb6\xb8\x5b\x1a\x74\xd1\x6c\x49\x96\x4b\xbe\xa1" "\x0c\x40\xe3\x55\xa2\xa9\xde\x48\x10\xd6\x14\xdb\xbf\xbd\x5f\x45\x8c\x2d" "\x32\x6d\xa2\x27\x60\x3a\x26\x7f\xce\x5a\x0a\x42\x42\xa0\xb9\x7b\x6d\xf7" "\x3d\x91\x4f\x5d\xe5\x3a\x25\x3a\x4d\x8f\x8e\x7d\x37\x43\x1e\xfc\xb7\x16" "\xd4\x71\xe8\x82\xd0\x87\x1f\x43\xe6\x3c\x0e\xef\x73\x26\x76\xd5\x2f\xfe" "\xea\x18\xde\x07\xb7\xa6\xd3\xec\xe3\x41\x26\xaf\x3b\xc2\xb4\x3c\xb8\x89" "\x30\xd9\xb5\x04\x6e\x61\x52\x8d\x1e\x05\x1c\xb9\x52\x5e\xc3\x15\x21\xf5" "\x86\x05\x9e\xe8\xcc\x81\x28\xd2\x9e\x40\x57\xcd\x0f\xe2\xed\xec\x0c\xb7" "\xf7\xb5\x0c\xfe\x70\x31\x08\x08\x76\x4f\x46\xd0\xf4\x00\xb4\xb8\x69\xfe" "\x8b\xda\xf8\x6f\xc3\xb7\xf9\x98\x6e\x90\xbf\xb8\x34\x5b\x7e\xe4\x2c\x65" "\xc9\x72\xf7\xb8\x03\x12\x1d\xeb\x45\x30\x90\x35\x66\x8d\x4e\x14\xd5\x73" "\xca\x35\xc4\xb5\xf4\xdf\x5f\xee\x76\x7b\xa3\x46\x18\xcc\xe6\x33\x43\xe6" "\x81\x8c\xa0\xef\xcd\xe2\x4e\x65\x3e\x5a\x59\x8d\x10\x5b\x53\x08", 1024); syscall(__NR_ioctl, /*fd=*/r[2], /*cmd=*/0x4400ae8f, /*arg=*/0x200000000480ul); // ioctl$KVM_RUN arguments: [ // fd: fd_kvmcpu (resource) // cmd: const = 0xae80 (4 bytes) // arg: const = 0x0 (8 bytes) // ] syscall(__NR_ioctl, /*fd=*/r[2], /*cmd=*/0xae80, /*arg=*/0ul); return 0; }