aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* dashboard/config: enable SECURITY_SELINUX_DEVELOPAleksandr Nogikh2022-04-067-6/+7
| | | | | This option enables the "enforcing=?" option (at least), which simplifies SELINUX configuration.
* tools: relax Linux requirements for arm64 imagesAleksandr Nogikh2022-04-061-0/+2
| | | | Require Linux >= 5.10 instead of 5.15.
* tools: generate bootable arm64 images with buildrootAleksandr Nogikh2022-04-061-6/+31
|
* pkg/instance: explicitly specify optional fuzzer argumentsAleksandr Nogikh2022-04-064-16/+25
| | | | | | | | Otherwise we get problems while testing patches for older syzkaller versions, which didn't support optional arguments. Adjust tests so that problems with how OldFuzzerCmd handles such arguments could be seen.
* dashboard/config/linux: update linux configs to v5.18-rc1Taras Madan2022-04-0632-3576/+4886
| | | | | update linux to v5.18-rc1 fix dependency update errors update configs
* vm/cuttlefish: add vm type for cuttlefish on gcekalder2022-04-052-0/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vm/cuttlefish: add vm type for cuttlefish on gce This new VM type embeds the existing 'gce' type to start an instance and then run a Cuttlefish Android VM on it using the 'launch_cvd' binary installed on it. This requires us to make a few fields on the 'gce' type visible so that 'cuttlefish' can set them when starting the instance. The remaining functionality (SSH forwarding, file copying, and running commands on the nested Android VM will be in following changes. For more information on Cuttlefish, see: https://source.android.com/setup/create/cuttlefish https://android.googlesource.com/device/google/cuttlefish/ * vm/cuttlefish: add vm type for cuttlefish on gce This new VM type embeds the existing 'gce' type to start an instance and then run a Cuttlefish Android VM on it using the 'launch_cvd' binary installed on it. This requires us to make a few fields on the 'gce' type visible so that 'cuttlefish' can set them when starting the instance. The remaining functionality (SSH forwarding, file copying, and running commands on the nested Android VM will be in following changes. For more information on Cuttlefish, see: https://source.android.com/setup/create/cuttlefish https://android.googlesource.com/device/google/cuttlefish/ * vm/cuttlefish: add vm type for cuttlefish on gce This new VM type embeds the existing 'gce' type to start an instance and then run a Cuttlefish Android VM on it using the 'launch_cvd' binary installed on it. This requires us to make a few fields on the 'gce' type visible so that 'cuttlefish' can set them when starting the instance. The remaining functionality (SSH forwarding, file copying, and running commands on the nested Android VM will be in following changes. For more information on Cuttlefish, see: https://source.android.com/setup/create/cuttlefish https://android.googlesource.com/device/google/cuttlefish/ * vm/cuttlefish: fix missed log.Logf(0 call to log.Logf(1 * vm/cuttlefish: remove unneeded log.Logf() calls These logging for Count() isn't terribly useful since it's a single-line call with very simple logic. For the unimplemented methods the log lines have limited utility since they're already returning error messages which will get logged.
* syz-verifier: log only the first mismatch (#3055)Taras Madan2022-04-041-0/+4
| | | | | Closes #3054 Ignore all the consequent failures in the program execution log. Use only the first mismatch for analysis.
* pkg/report: ignore print_report functionDmitry Vyukov2022-04-012-0/+141
| | | | It popped up in a new KASAN report after recent KASAN changes.
* docs: adding a new OS supportFahima Mokhtari2022-04-011-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | * docs: update syscalls documentation Fixing typo "does not contain" instead of "does not contains" * docs: extending Syzkaller to a new OS * docs: extending Syzkaller to a new OS * docs: extending Syzkaller to a new OS * docs: extending Syzkaller to a new OS * docs: extending Syzkaller to a new OS * docs: adding a new OS support * docs: adding a new OS support * docs: adding a new OS support * docs: adding a new OS support * docs: adding a new OS support
* syz-verifier: simplify Stats APITaras Madan2022-04-012-8/+8
|
* syz-verifier: fix stats access, remove racesTaras Madan2022-03-316-117/+232
| | | | Removed atomic operations. Added object level mutex.
* syz-verifier: add exectask.go tests, fix racesTaras Madan2022-03-314-25/+124
|
* Revert "syz-verifier/exectask.go: add tests" (#3050)Taras Madan2022-03-302-84/+1
| | | | This reverts commit 42718dd659525414aa0bf2794688ac94a32f7764. Original PR had a race.
* syz-verifier/exectask.go: add testsTaras Madan2022-03-302-1/+84
|
* pkg/report: better parse "scheduling while atomic" reportsDmitry Vyukov2022-03-288-10/+258
|
* syz-manager: display raw coverageAleksandr Nogikh2022-03-286-36/+154
|
* all: collect raw coverageAleksandr Nogikh2022-03-288-38/+86
| | | | | | | | | Raw coverage might be important when e.g. analysing the origins of out-of-place coverage in coverage reports or understanding why the fuzzer could not reach deeper code. If "raw_cover" is set to true, syzkaller will remember unsorted and unduplicated coverage (PCs) for each its corpus program.
* syz-manager: use a separate type for corpus itemsAleksandr Nogikh2022-03-281-6/+27
| | | | | | Now we use the same type for both RCP communication with syz-fuzzer and for managing corpus. It's not convenient to add corpus-specific fields in this case, so separate them.
* pkg/instance: refactor FuzzerCmd()Aleksandr Nogikh2022-03-283-19/+65
| | | | | | The method already has too many arguments, which complicates the further addition of new features. Introduce FuzzerCmdArgs structure to overcome the problem.
* all: use `t.TempDir` to create temporary test directoryEng Zer Jun2022-03-2810-95/+15
| | | | | | | | | This commit replaces all `ioutil.TempDir` with `t.TempDir` in tests. The directory created by `t.TempDir` is automatically removed when the test and all its subtests complete. Reference: https://pkg.go.dev/testing#T.TempDir Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* .github: included dependabotnathan-4152022-03-241-0/+12
| | | | Enable dependabot to get security updates and if needed version updates on dependencies.
* .github/workflows: pined actions by SHAnaveensrinivasan2022-03-241-14/+17
| | | | - Pinned actions by SHA https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies
* syz-verifier: support multiple VMs (#3040)Taras Madan2022-03-221-10/+11
| | | | | | | | Reused config parameter "config.vm.count". Local fuzzing speed test result: 1 vm/pool => 380 programs/minute 2 vm/pool => 1050 programs/minute 4 vm/pool => 1600 programs/minute 8 vm/pool => 800 programs/minute
* syz-verifier: improve statistics (#3038)Taras Madan2022-03-225-28/+32
| | | | s/TotalMismatches/TotalCallMismatches/ for readability. Add ExecErrorProgs to count failures.
* docs: update syscalls documentationFahima Mokhtari2022-03-221-1/+1
| | | | Fixing typo "does not contain" instead of "does not contains"
* vm/gce: enable display device configurationAleksandr Nogikh2022-03-222-10/+13
| | | | Now we always enable it, make this configurable for GCE instances.
* syz-verifier: fix syscalls API mapping in test (#3037)Taras Madan2022-03-221-2/+2
|
* syz-verifier: redesigned the analysis program generation and analysis flow ↵Taras Madan2022-03-2212-822/+823
| | | | | | | | | (#2908) Program verification logic is located in one function now. VMs fetch programs from priority queues, not from the generator. VMs operate the tasks, not programs now. For the crashed VM - return error for every program in the queue *fixed some road errors
* pkg/instance: support older syzkaller revisionsAleksandr Nogikh2022-03-171-3/+6
| | | | | | | | | | | | | | | | | | | | | Now we use go1.16+, but sometimes syz-ci still has to compile and run old syzkaller revisions, which were not meant to be compiled with modern Go. In particular, this leads to the following errors: syzkaller build failed: failed to run ["make" "target"]: exit status 2 tools/syz-make/make.go:14:2: no required module provides package github.com/google/syzkaller/pkg/osutil: go.mod file not found in current directory or any parent directory; see 'go help modules' tools/syz-make/make.go:15:2: no required module provides package github.com/google/syzkaller/sys/targets: go.mod file not found in current directory or any parent directory; see 'go help modules' Makefile:39: *** syz-make failed. Stop. Fix this by adding GO111MODULE=auto to the environment variables. Reported-by: Taylor R Campbell <riastradh@netbsd.org>
* syz-verifier: don't use -collide in the runner (#3032)Taras Madan2022-03-163-9/+4
|
* sys/linux: update watch queue descriptionsDmitry Vyukov2022-03-167-7/+19
| | | | | | | The interface has significantly changed since the first version. Update to the upstreammed interface. Fixes #3030
* sys/linux: regenerate const filesDmitry Vyukov2022-03-161-1/+1
| | | | | Regenerate on latest upstream commit 56e337f2cf1326323844927a04e9dbce9a244835.
* pkg/host: only try enabled syscalls when starting syz-fuzzerKris Alder2022-03-087-26/+39
| | | | | | | | | | | When syz-fuzzer starts, it tries all syscalls to filter out any that are not supported. This process should include only the syscalls that are enabled using the 'enable_syscalls' and 'disable_syscalls' fields in syz-manager's config. This is useful for fuzzing Cuttlefish devices, for example, where the 'vhost_vsock' syscall needs to be excluded from fuzzing and from this test.
* dashboard/config/linux: disable KASAN_INLINE for riscv64Aleksandr Nogikh2022-03-083-5/+6
| | | | | | | | | Problems with KASAN_OUTLINE and some other instrumentations were recentely fixed in a series by Alexandre Ghiti. Fixes for KASAN_INLINE are also on the way. Switch syzbot's riscv instance to KASAN_OUTLINE to make it work after a 130+ day break.
* dashboard/config/linux: enable CONFIG_BACKTRACE_VERBOSE for armDmitry Vyukov2022-03-055-4/+6
| | | | | | | W/o this config arm stack traces don't include PC which we expect when parsing stack traces. It was added in May 13 2021, and it seems since then we classified all arm reports as corrupted.
* dashboard/config/linux: disable IO_URING for android 5.10Dmitry Vyukov2022-03-054-4/+23
|
* docs: update syz-testbed's docsAleksandr Nogikh2022-02-251-16/+50
|
* tools/syz-testbed: accept syzkaller workdir as crash log sourceAleksandr Nogikh2022-02-253-12/+90
|
* tools/syz-testbed: support experiments with syz-reproAleksandr Nogikh2022-02-256-7/+359
| | | | | | | Add a "syz-repro" target and 3 tables: - List of all performed (and ongoing) reproductions. - Comparison of repro rate for different bugs on different checkouts. - Comparison of the share of C reproducers.
* tools/syz-testbed: support multiple targetsAleksandr Nogikh2022-02-256-173/+312
| | | | | | | | | | | | | | | Refactor the code of syz-testbed to enable support of different targets. This required the following changes: - Instead of doing mass start and mass restart of instances, let them be more independent. - Support different types of instances, which may have different expectations of the target behavior. E.g. syz-manager normally never exits, while syz-repro is expected to exit after a certain time. - Factor out stats management, as stat entries may be different for different targets. - Introduce locking to TestbedCtx and Checkout, as slices there can be modified at arbitrary times.
* tools/syz-testbed: store html templates in filesAleksandr Nogikh2022-02-254-153/+163
|
* tools/syz-linter: add go:embed to exceptionsAleksandr Nogikh2022-02-251-1/+1
| | | | | No space is allowed between // and go:embed. Make linter not throw a warning about it.
* tools/syz-testbed: add table footersAleksandr Nogikh2022-02-252-7/+80
|
* tools/syz-testbed: introduce BoolCell cell typeAleksandr Nogikh2022-02-252-1/+18
|
* tools/syz-testbed: add a special cell type for ratiosAleksandr Nogikh2022-02-251-0/+13
|
* tools/syz-testbed: do Start()/Wait() instead of Run()Aleksandr Nogikh2022-02-251-1/+2
| | | | | | Otherwise there's a risk that the instance is stopped before Run() has had a chance to be executed. This leads to a panic while doing cmd.Signal().
* tools/syz-testbed: don't parse configsAleksandr Nogikh2022-02-255-24/+77
| | | | | | | | | | It's not practical to parse configs from tools/syz-testbed because it limits the tool to using only those configuration options, which are supported by the syzkaller version at the moment of tools/syz-testbed compilation. Operate with manager configs as if they were just some JSON objects. Introduce a PatchJSON method to update their fields in a convenient way.
* tools/syz-testbed: refactor uiTableTypeAleksandr Nogikh2022-02-251-36/+50
| | | | Make it easier to do uiTableType filtering later.
* tools/syz-testbed: make Instance.Stop() nonblockingAleksandr Nogikh2022-02-251-1/+4
|
* dasboard: add crash stats pageAleksandr Nogikh2022-02-259-2/+432
| | | | | Show top crashers for X last days. Show graph with daily shares of crashes that satisfy user-entered regexps.