| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Fuzzer has figured out how to corrupt input/output shmem regions
abusing the text memcpy in syz_kvm_setup_cpu. It guessed a negative
text_size value that causes the memcpy to overwrite shmem regions.
Protect better against such cases:
1. Make text_size unsigned (there is already a check that it is less than 1000).
2. Map input region as readable only, we don't write to it.
3. Add address sanity check to segv_handler, if we see that we are writing
into executable data, it's better to crash instantly.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Currently non-bitfield values are copied incorrectly.
Probably all turned into zeros or something.
Fix that. Add test.
|
| |
|
|
|
|
| |
Now it's possible to use `int32:18` to denote a bitfield of size 18 as a struct field.
This fixes #72.
|
| |
|
|
|
|
|
| |
1. Basic support for arm64 kvm testing.
2. Fix compiler warnings in x86 kvm code.
3. Test all pseudo syz calls in csource.
4. Fix handling of real code in x86.
|
| |
|
|
|
|
| |
Add new pseudo syscall syz_kvm_setup_cpu that setups VCPU into
interesting states for execution. KVM is too difficult to setup otherwise.
Lots of improvements possible, but this is a starting point.
|
| |
|
|
| |
The source is fuzzer provided memory, it can be non-addressable.
|
| |
|
|
|
|
| |
Check for compiler warnings during compilation.
Don't require -std=c99.
Fix existing compiler warnings.
|
| | |
|
| |
|
|
| |
See the added comment for explanation.
|
| |
|
|
|
| |
Otherwise it does not compile as C.
Also regenerate csource/common.go (it misses the MAX_PIDS change).
|
| |
|
|
|
| |
IP addresses like 192.168.0.1/192.168.1.1 are often used for routing between VM and the host.
Offset our IP addresses to start from 192.168.218.0 to reduce potential conflicts.
|
| |
|
|
|
|
| |
waitpid(pid) does not work if child invokes ptrace(PTRACE_TRACEME):
https://groups.google.com/forum/#!topic/syzkaller/SjWzOnNRRIU
Use waitpid(-1) instead.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Need to chmod(0777) the work dir before we do setuid(nobody).
Otherwise nobody user won't have rights to use the temp dir.
|
| | |
|
| |
|
|
|
|
|
|
| |
Factor out repro logic from syz-repro tool,
so that it can be used in syz-manager.
Also, support sandboxes in code generated by
csoure. This is required to reproduce crashes
that require e.g. namespace sandbox.
|
| |
|
|
|
|
|
|
|
|
| |
Add sys/test.txt file with description of syscalls for tests.
These descriptions can be used to ensure that we can parse everything we clain we can parse.
Use these descriptions to write several tests for exec serialization
(one test shows that alignment handling is currently incorrect).
These test descriptions can also be used to write e.g. mutation tests.
Update #78
|
| |
|
|
| |
Update #59
|
| |
|