syzkaller is an unsupervised coverage-guided kernel fuzzer
Go to file
Dmitry Vyukov b458f2c1a6 executor: wrap all syscalls into NONFAILING
Currently we sprinkle NONFAILING all over pseudo-syscall code,
around all individual accesses to fuzzer-generated pointers.
This is tedious manual work and subject to errors.
Wrap execute_syscall invocation with NONFAILING in execute_call once instead.
Then we can remove NONFAILING from all pseudo-syscalls and never get back to this.
Potential downsides: (1) this is coarser-grained and we will skip whole syscall
on invalid pointer, but this is how normal syscalls work as well,
so should not be a problem; (2) we will skip any clean up (closing of files, etc)
as well; but this may be fine as well (programs can perfectly leave open file
descriptors as well).

Update #1918
2020-07-15 09:26:23 +02:00
.github .github/CODEOWNERS: assign vendor/ changes to dvyukov 2020-07-04 12:04:37 +02:00
dashboard dashboard/app: say "issue" instead of "crash" 2020-07-14 23:21:01 +02:00
docs docs: add another research paper 2020-07-12 16:09:44 +02:00
executor executor: wrap all syscalls into NONFAILING 2020-07-15 09:26:23 +02:00
pkg executor: wrap all syscalls into NONFAILING 2020-07-15 09:26:23 +02:00
prog prog/alloc: align address allocation for aligned[addr] 2020-07-14 12:20:37 +02:00
sys executor: wrap all syscalls into NONFAILING 2020-07-15 09:26:23 +02:00
syz-ci all: fix comments format 2020-07-12 08:22:44 +02:00
syz-fuzzer all: fix dup types in func args 2020-07-04 15:05:30 +02:00
syz-hub prog: control program length 2020-03-13 13:16:53 +01:00
syz-manager all: fix log/error text starting with capital letter 2020-07-05 10:55:16 +02:00
tools prog/alloc: align address allocation for aligned[addr] 2020-07-14 12:20:37 +02:00
vendor vendor: add google.golang.org/appengine/memcache 2020-07-09 19:40:12 +02:00
vm all: fix comments format 2020-07-12 08:22:44 +02:00
.clang-format buildbot: add .travis.yml 2017-07-28 13:25:48 +02:00
.gitignore .github/workflows: add CI workflow 2020-05-18 11:34:42 +02:00
.golangci.yml tools/syz-linter: add custom linter 2020-07-04 15:05:30 +02:00
AUTHORS tools/syz-crush: Add feature to run C-program 2020-06-15 18:41:13 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-02-04 12:05:04 +01:00
codecov.yml codecov.yml: suppress coverage errors even more 2020-07-01 22:57:25 +02:00
CONTRIBUTORS CONTRIBUTORS: add Cheng-Min Chiang 2020-07-10 13:02:07 -07:00
fuzzbuzz.yaml all: add missing copyright statements 2020-05-18 11:34:42 +02:00
go.mod tools/syz-linter: add custom linter 2020-07-04 15:05:30 +02:00
go.sum go.mod: add go-fuzz-build 2020-07-04 15:05:30 +02:00
LICENSE initial commit 2015-10-12 10:16:57 +02:00
Makefile Makefile: avoid non-portable realpath 2020-07-07 07:28:07 +02:00
README.md README.md: fix oss-fuzz badge link 2020-05-21 17:36:56 +02:00

syzkaller - kernel fuzzer

CI Status fuzzit OSS-Fuzz Go Report Card Coverage Status GoDoc License

syzkaller ([siːzˈːlə]) is an unsupervised coverage-guided kernel fuzzer.
Supported OSes: Akaros, FreeBSD, Fuchsia, gVisor, Linux, NetBSD, OpenBSD, Windows.

Mailing list: syzkaller@googlegroups.com (join on web or by email).

Found bugs: Akaros, Darwin/XNU, FreeBSD, Linux, NetBSD, OpenBSD, Windows.

Documentation

Initially, syzkaller was developed with Linux kernel fuzzing in mind, but now it's being extended to support other OS kernels as well. Most of the documentation at this moment is related to the Linux kernel. For other OS kernels check: Akaros, Darwin/XNU, FreeBSD, Fuchsia, NetBSD, OpenBSD, Windows, gVisor.

Disclaimer

This is not an official Google product.