mirror of
https://github.com/reactos/syzkaller.git
synced 2024-11-23 19:39:40 +00:00
syzkaller is an unsupervised coverage-guided kernel fuzzer
069a5a4486
On X86-64, dereferencing a non-canonical address normally causes a #GP, for which syzkaller already has a pattern. However, if the base register of the non-canonical address is RBP (which can happen in builds that use RBP as a general-purpose register because they don't use frame pointer unwinding), #SS is thrown instead, for which syzkaller did not yet have a pattern. To see this kind of fault, you can insert the following code in kernel_init() after the call to rcu_end_inkernel_boot(): asm volatile( "movabs $0x8000000000000000, %rbp\n\t" "movq (%rbp), %rax\n\t" "ud2\n\t" ); Linux prints a different error message for #SS, so add that error message to syzkaller's list of patterns. |
||
---|---|---|
dashboard | ||
docs | ||
executor | ||
Godeps | ||
pkg | ||
prog | ||
sys | ||
syz-ci | ||
syz-fuzzer | ||
syz-hub | ||
syz-manager | ||
tools | ||
vendor | ||
vm | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.golangci.yml | ||
.travis.yml | ||
AUTHORS | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTORS | ||
fuzzbuzz.yaml | ||
fuzzit.sh | ||
LICENSE | ||
Makefile | ||
README.md |
syzkaller - kernel fuzzer
syzkaller
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.
- How to install syzkaller
- How to use syzkaller
- How syzkaller works
- How to contribute to syzkaller
- How to report Linux kernel bugs
External Articles
- Research work based on syzkaller
- From HardenedLinux project:
- Kernel QA with syzkaller and qemu (tutorial on how to setup syzkaller with qemu)
- Syzkaller crash DEMO (tutorial on how to extend syzkaller with new syscalls)
- Kernel debug tool with syzkaller (debugging qemu VM created by syz-manager with gdb)
- Explanation of some syzkaller internals
- A example of fuzzing the ceph filesystem
- Coverage-guided kernel fuzzing with syzkaller (by David Drysdale)
- ubsan, kasan, syzkaller und co (video) (by Florian Westphal)
- Debugging a kernel crash found by syzkaller (by Quentin Casasnovas)
- Linux Plumbers 2016 talk slides
- syzkaller: the next gen kernel fuzzer (basics of operations, tutorial on how to run syzkaller and how to extend it to fuzz new drivers)
- syzbot and the tale of thousand kernel bugs [video]
Disclaimer
This is not an official Google product.