Commit Graph

2554 Commits

Author SHA1 Message Date
Dmitry Vyukov
ed73f9c3aa pkg/host: more precise detection for syz_mount_image support 2018-06-18 19:45:50 +02:00
Dmitry Vyukov
dde158e0af sys/linux: refine xdp description
Split sockaddr_xdp for bind.
Bind accepts another sock_xdp in addr.
Without the split getsockaddr "can" create sock_xdp's
because it returns generic sockaddr which contains
all addresses, including sockaddr_xdp, which in turn
contains sock_xdp.
2018-06-18 19:45:49 +02:00
Dmitry Vyukov
dcb1eebb7f prog: more precise constructor calculation
Currently a call that both accepts and creates a resource
self-justifies itself and thus is always enabled.
A good example is accept call. Accepts are always self-enable
and thus enable all other syscalls that work with the socket.

Calculate TransitivelyEnabledCalls in the opposite direction
to resolve this. Start with empty set of enable syscalls,
then enable syscalls that don't accept any resources,
then enable syscalls that accept resources created by the
previous batch of syscalls, and so on.

This prevents self-enablement of accept.
2018-06-18 19:45:48 +02:00
Dmitry Vyukov
920b18be87 sys: mark output resources as opt
Mark output resources as opt in preparation for more
precise constructor calculation.
2018-06-18 19:45:47 +02:00
Dmitry Vyukov
2dcee3b338 prog: use all resource special values for opt args 2018-06-18 19:45:46 +02:00
Dmitry Vyukov
af9f337ea6 pkg/host: support trial supported syscall detection
Detect supported syscall by directly executing them
if kallsyms is not present. This is required for gvisor testing.
2018-06-18 19:45:45 +02:00
Dmitry Vyukov
7bd97c6ff6 pkg/host: better detection of supported sockets
Check socketpair.
Check non-constant socket types.
2018-06-18 19:45:45 +02:00
Dmitry Vyukov
b7d00d1e14 pkg/email: support quoted-printable emails
We did not handle quoted-printable because mime package handles it.
But we can have a non-mime email in quoted-printable.
Simply handle it always, it's not hard.
2018-06-18 19:45:44 +02:00
Dmitry Vyukov
e79c9d2b43 vendor: add github.com/google/go-cmp/cmp
This package simplifies diffing complex objects in tests.
2018-06-18 19:45:37 +02:00
Dmitry Vyukov
27c5f59f50 all: fix gometalinter warnings 2018-06-12 20:10:58 +02:00
Dmitry Vyukov
6dcbc4355b syz-fuzzer: fix image testing
During image testing we don't pass any enabledCalls,
so use all syscalls in such case.
2018-06-12 19:53:24 +02:00
shankarapailoor
b29d507d73 Update found_bugs.md 2018-06-12 19:39:10 +02:00
Dmitry Vyukov
87ee80501c
Update found_bugs.md 2018-06-12 19:18:33 +02:00
Dmitry Vyukov
598eb19243 prog: mutate fixed-size strings more
Allow removing/inserting ranges of bytes from fixed-size strings,
provided we truncate/extend resulting string to keep original size.
2018-06-12 19:09:26 +02:00
Dmitry Vyukov
6fb8a0255e syz-manager: don't save repros sent to dashboard
These repros eat unbounded amount of disk space.
2018-06-12 18:31:28 +02:00
Dmitry Vyukov
b431b2cc4c sys/linux: add rseq syscall 2018-06-12 18:06:44 +02:00
Dmitry Vyukov
06ece2ca66 pkg/host: rework host feature detection/setup
Currently host feature detection/setup code is spread
across platform-independent fuzzer code, pkg/host, pkg/ipc
and executor.
Move this all into pkg/host and show readable info
about features on manager start.

Fixes #46
2018-06-12 14:53:22 +02:00
Dmitry Vyukov
62d1af2467 pkg/instance: more robust instance testing
Strictly saying, we may not get the connection when
the fuzzer process exits. The accepting goroutine
may have not been scheduled yet.
For the connection for up to 10 seconds.
2018-06-11 16:47:12 +02:00
Dmitry Vyukov
0f0e5db62d vm/adb: don't fail if port 35099 is busy 2018-06-11 16:47:12 +02:00
Ondrej Mosnacek
112eec798f sys/linux: add missing generic crypto algs 2018-06-11 14:22:05 +03:00
Dmitry Vyukov
cb052d780d
Create README.md 2018-06-11 11:37:34 +02:00
Dmitry Vyukov
7b7a851040
Update syzbot.md
add reference to kernel configs
2018-06-11 11:36:50 +02:00
Dmitry Vyukov
12d131d7d8 dashboard/config: add syzbot configs 2018-06-11 11:32:02 +02:00
Dmitry Vyukov
ee885b87a4 vm/qemu: fix 9p for latest distros
9p stopped working on Debian rolling.
Update the init script.
2018-06-11 11:20:55 +02:00
Dmitry Vyukov
ae8bdb5058 syz-fuzzer: don't crash on commit mismatch
We now check for manager-fuzzer-executor commit mismatch (see Manager.Check).
But in some cases commit mismatch is not detected gracefully, and instead
leads to panics in fuzzer. Namely, when -enabled_syscalls fuzzer flag includes
large syscalls numbers, so large that they are no present at all in the an old
revision that fuzzer uses, in such case fuzzer panics.

Notify manager about invalid calls instead.

Fixes #464
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
deb0e69e10 executor: always use errors=continue when mounting ext2/3/4
For ext2/3/4 we have to have errors=continue because the image
can contain errors=panic flag and can legally crash kernel.

Fixes #599
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
9cff2eb96a dashboard/app: attach fixing commits to canonical bugs
Fixes #615
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
b30b1136b6 dashboard/app: try 1 repro per day until we have at least syz repro
Bugs without repros are not actionable sometimes.

Fixes #627
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
a742909665 dashboard/app: move repro tests for separate file 2018-06-11 12:12:01 +03:00
Dmitry Vyukov
848d746cf5 dashboard/app: use helper functions in tests
Update #606
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
952c799453 dashboard/app: refactor tests
Use standard dashboard client provided by dashapi package in tests.
Switch everything to use the client instead of API method.

Fixes #606
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
d6ae9b9739 dashboard/app: simplify config deployment
Currently one needs to switch between config_stub.go and prod
config back and forth on every deployment. This is very
inconvinient. Rework config, so that switching is not necessary.
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
866118af36 sys/linux: add udplite sockets 2018-06-08 20:51:57 +02:00
Dmitry Vyukov
721401058c sys/linux: add TCP_ZEROCOPY_RECEIVE and TCP_INQ 2018-06-08 20:40:46 +02:00
Dmitry Vyukov
09ca59bff7 sys/linux: add ip6t_srh1 description 2018-06-08 20:29:37 +02:00
Dmitry Vyukov
145029013c sys/linux: add more fs ioctls 2018-06-08 20:21:23 +02:00
Dmitry Vyukov
9dbd63342f sys/linux: minor fixes for aio 2018-06-08 19:26:15 +02:00
Dmitry Vyukov
c5ca9ff98c sys/linux: move aio descriptions into separate file 2018-06-08 18:55:53 +02:00
Dmitry Vyukov
83f945db79 dashboard/app: fix old crash purging logic
NumRepro includes failed repro attempts,
so we should not look at it when purging old crashes.
2018-06-08 10:00:42 +02:00
Dmitry Vyukov
6db75fefbe pkg/report: add another format for null RIP
Kernel keeps inventing new formats...
2018-06-08 09:34:02 +02:00
Dmitry Vyukov
1319a7da09 dashboard/app: fix crash save throttling logic
bug.LastTime is updated on every crash, even if we don't save it.
As the result we did not save recent crashes for popular bugs at all.
Fix this by introducing bug.LastSavedCrash.
2018-06-08 09:34:02 +02:00
Hangbin Liu
f7b27b7a19 sys/linux: add remaining qdisc/tclass/tfilter/actions for netlink route sched
Update #533

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2018-06-08 08:11:20 +03:00
Dmitry Vyukov
645e75f803 executor: make syscall table and number constant
We see some crashes that suggest corruption of the syscall number:

invalid command number 1296 (errno 11)
invalid command number 107 (errno 110)

Make the table and the number constant to prevent corruption.
2018-06-07 15:32:30 +02:00
Dmitry Vyukov
7fb9023fd7 pkg/report: ignore down functions for task hung bugs 2018-06-07 14:01:22 +02:00
Dmitry Vyukov
8b06421c04 sys/linux: regenerate consts on tip 2018-06-07 13:13:50 +02:00
Dmitry Vyukov
85e7c1404f sys/linux: add AF_XDP support 2018-06-07 13:13:49 +02:00
Daniel Borkmann
ac9b19d2e4 bpf: enable hardening mode 1 for jited images
This will harden non-root programs from kernel side, but not
root-only ones. Helps also to increase coverage a bit since
syzkaller generates programs for both cases.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-06-07 12:39:12 +03:00
Daniel Borkmann
b17ae9398c bpf: enable full unwind and kallsym export support for jited images
Helps syzkaller in particular for unwinding full stack in case
of warnings or crashes.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-06-07 12:39:12 +03:00
Dmitry Vyukov
667b9a6950 sys/linux: fix up midi descriptions 2018-06-07 11:10:49 +02:00
srikanth007m
72b15886d9 Sound Mixer Descriptors for MIDI
Enabling MIDI supported IOCTL descriptors for Syzkaller
2018-06-07 11:56:11 +03:00