1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
// Copyright 2022 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
// File autogenerated by genseccomp.py from Android U - edit at your peril!!
const struct sock_filter arm_system_filter[] = {
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 0, 0, 142),
BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, 240, 140, 0), //futex
BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, 54, 139, 0), //ioctl
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 197, 69, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 91, 35, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 51, 17, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 36, 9, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 19, 5, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 11, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 3, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 2, 132, 131), //restart_syscall|exit
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 7, 131, 130), //read|write|open|close
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 13, 130, 129), //execve|chdir
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 26, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 22, 128, 127), //lseek|getpid|mount
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 27, 127, 126), //ptrace
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 43, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 41, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 38, 124, 123), //sync|kill
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 42, 123, 122), //dup
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 45, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 44, 121, 120), //times
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 46, 120, 119), //brk
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 74, 9, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 64, 5, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 60, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 57, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 53, 115, 114), //acct|umount2
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 58, 114, 113), //setpgid
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 62, 113, 112), //umask|chroot
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 66, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 65, 111, 110), //getppid
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 68, 110, 109), //setsid|sigaction
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 85, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 77, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 76, 107, 106), //sethostname|setrlimit
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 80, 106, 105), //getrusage|gettimeofday|settimeofday
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 88, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 86, 104, 103), //readlink
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 89, 103, 102), //reboot
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 131, 17, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 116, 9, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 103, 5, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 96, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 94, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 93, 97, 96), //munmap|truncate
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 95, 96, 95), //fchmod
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 98, 95, 94), //getpriority|setpriority
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 114, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 107, 93, 92), //syslog|setitimer|getitimer|stat
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 115, 92, 91), //wait4
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 124, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 118, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 117, 89, 88), //sysinfo
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 123, 88, 87), //fsync|sigreturn|clone|setdomainname|uname
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 128, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 126, 86, 85), //adjtimex|mprotect
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 130, 85, 84), //init_module|delete_module
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 150, 7, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 138, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 136, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 134, 81, 80), //quotactl|getpgid|fchdir
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 137, 80, 79), //personality
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 143, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 141, 78, 77), //setfsuid|setfsgid|_llseek
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 149, 77, 76), //flock|msync|readv|writev|getsid|fdatasync
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 183, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 172, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 164, 74, 73), //mlock|munlock|mlockall|munlockall|sched_setparam|sched_getparam|sched_setscheduler|sched_getscheduler|sched_yield|sched_get_priority_max|sched_get_priority_min|sched_rr_get_interval|nanosleep|mremap
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 182, 73, 72), //prctl|rt_sigreturn|rt_sigaction|rt_sigprocmask|rt_sigpending|rt_sigtimedwait|rt_sigqueueinfo|rt_sigsuspend|pread64|pwrite64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 190, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 188, 71, 70), //getcwd|capget|capset|sigaltstack|sendfile
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 196, 70, 69), //vfork|ugetrlimit|mmap2|truncate64|ftruncate64|stat64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 345, 35, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 270, 17, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 224, 9, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 217, 5, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 213, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 199, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 198, 63, 62), //fstat64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 212, 62, 61), //getuid32|getgid32|geteuid32|getegid32|setreuid32|setregid32|getgroups32|setgroups32|fchown32|setresuid32|getresuid32|setresgid32|getresgid32
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 215, 61, 60), //setuid32|setgid32
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 219, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 218, 59, 58), //getdents64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 222, 58, 57), //mincore|madvise|fcntl64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 251, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 241, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 240, 55, 54), //gettid|readahead|setxattr|lsetxattr|fsetxattr|getxattr|lgetxattr|fgetxattr|listxattr|llistxattr|flistxattr|removexattr|lremovexattr|fremovexattr|tkill|sendfile64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 249, 54, 53), //sched_setaffinity|sched_getaffinity|io_setup|io_destroy|io_getevents|io_submit|io_cancel|exit_group
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 256, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 252, 52, 51), //epoll_ctl
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 269, 51, 50), //set_tid_address|timer_create|timer_settime|timer_gettime|timer_getoverrun|timer_delete|clock_settime|clock_gettime|clock_getres|clock_nanosleep|statfs64|fstatfs64|tgkill
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 317, 9, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 290, 5, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 286, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 280, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 271, 46, 45), //arm_fadvise64_64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 285, 45, 44), //waitid|socket|bind|connect|listen
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 289, 44, 43), //getsockname|getpeername|socketpair
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 292, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 291, 42, 41), //sendto
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 298, 41, 40), //recvfrom|shutdown|setsockopt|getsockopt|sendmsg|recvmsg
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 327, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 322, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 319, 38, 37), //inotify_add_watch|inotify_rm_watch
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 326, 37, 36), //openat|mkdirat|mknodat|fchownat
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 340, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 339, 35, 34), //fstatat64|unlinkat|renameat|linkat|symlinkat|readlinkat|fchmodat|faccessat|pselect6|ppoll|unshare|set_robust_list
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 344, 34, 33), //splice|sync_file_range2|tee|vmsplice
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 417, 17, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 372, 9, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 352, 5, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 350, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 348, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 347, 28, 27), //getcpu|epoll_pwait
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 349, 27, 26), //utimensat
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 351, 26, 25), //timerfd_create
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 369, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 367, 24, 23), //fallocate|timerfd_settime|timerfd_gettime|signalfd4|eventfd2|epoll_create1|dup3|pipe2|inotify_init1|preadv|pwritev|rt_tgsigqueueinfo|perf_event_open|recvmmsg|accept4
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 370, 23, 22), //prlimit64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 397, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 380, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 378, 20, 19), //clock_adjtime|syncfs|sendmmsg|setns|process_vm_readv|process_vm_writev
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 394, 19, 18), //sched_setattr|sched_getattr|renameat2|seccomp|getrandom|memfd_create|bpf|execveat|userfaultfd|membarrier|mlock2|copy_file_range|preadv2|pwritev2
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 403, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 398, 17, 16), //statx
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 415, 16, 15), //clock_gettime64|clock_settime64|clock_adjtime64|clock_getres_time64|clock_nanosleep_time64|timer_gettime64|timer_settime64|timerfd_gettime64|timerfd_settime64|utimensat_time64|pselect6_time64|ppoll_time64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 438, 7, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 434, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 420, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 418, 12, 11), //recvmmsg_time64
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 425, 11, 10), //semtimedop_time64|rt_sigtimedwait_time64|futex_time64|sched_rr_get_interval_time64|pidfd_send_signal
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 436, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 435, 9, 8), //pidfd_open
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 437, 8, 7), //close_range
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 983042, 3, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 440, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 439, 5, 4), //pidfd_getfd
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 441, 4, 3), //process_madvise
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 983045, 1, 0),
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 983043, 2, 1), //__ARM_NR_cacheflush
BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 983046, 1, 0), //__ARM_NR_set_tls
BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW),
};
#define arm_system_filter_size (sizeof(arm_system_filter) / sizeof(struct sock_filter))
|