netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH,v3,net-next 0/2] Improve code coverage of syzkaller
@ 2017-09-22 20:49 Petar Penkov
  2017-09-22 20:49 ` [PATCH,v3,net-next 1/2] tun: enable NAPI for TUN/TAP driver Petar Penkov
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Petar Penkov @ 2017-09-22 20:49 UTC (permalink / raw)
  To: netdev; +Cc: edumazet, maheshb, willemb, davem, ppenkov, Petar Penkov

This patch series is intended to improve code coverage of syzkaller on
the early receive path, specifically including flow dissector, GRO,
and GRO with frags parts of the networking stack. Syzkaller exercises
the stack through the TUN driver and this is therefore where changes
reside. Current coverage through netif_receive_skb() is limited as it
does not touch on any of the aforementioned code paths. Furthermore,
for full coverage, it is necessary to have more flexibility over the
linear and non-linear data of the skbs.

The following patches address this by providing the user(syzkaller)
with the ability to send via napi_gro_receive() and napi_gro_frags().
Additionally, syzkaller can specify how many fragments there are and
how much data per fragment there is. This is done by exploiting the
convenient structure of iovecs. Finally, this patch series adds
support for exercising the flow dissector during fuzzing.

The code path including napi_gro_receive() can be enabled via the
IFF_NAPI flag.  The remainder of the changes in this patch series give
the user significantly more control over packets entering the kernel.
To avoid potential security vulnerabilities, hide the ability to send
custom skbs and the flow dissector code paths behind a
capable(CAP_NET_ADMIN) check to require special user privileges.

Changes since v2 based on feedback from Willem de Bruijn and Mahesh
Bandewar:

Patch 1/ No changes.
Patch 2/ Check if the preconditions for IFF_NAPI_FRAGS (IFF_NAPI and
	 IFF_TAP) are met before opening/attaching rather than after.
	 If they are not, change the behavior from discarding the
	 flag to rejecting the command with EINVAL.

Petar Penkov (2):
  tun: enable NAPI for TUN/TAP driver
  tun: enable napi_gro_frags() for TUN/TAP driver

 drivers/net/tun.c           | 261 +++++++++++++++++++++++++++++++++++++++++---
 include/uapi/linux/if_tun.h |   2 +
 2 files changed, 245 insertions(+), 18 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-09-26  3:16 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-22 20:49 [PATCH,v3,net-next 0/2] Improve code coverage of syzkaller Petar Penkov
2017-09-22 20:49 ` [PATCH,v3,net-next 1/2] tun: enable NAPI for TUN/TAP driver Petar Penkov
2017-09-25 16:23   ` Mahesh Bandewar (महेश बंडेवार)
2017-09-22 20:49 ` [PATCH,v3,net-next 2/2] tun: enable napi_gro_frags() " Petar Penkov
2017-09-25 16:27   ` Mahesh Bandewar (महेश बंडेवार)
2017-09-26  3:16 ` [PATCH,v3,net-next 0/2] Improve code coverage of syzkaller David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).