]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add missing sockaddr length and family validation to various protocols
authorMark Johnston <markj@FreeBSD.org>
Mon, 3 May 2021 16:51:04 +0000 (12:51 -0400)
committerMark Johnston <markj@FreeBSD.org>
Mon, 17 May 2021 17:43:07 +0000 (13:43 -0400)
commit1e066db6cdad4f3d4934bad487db68d3a7872727
treed583d412be812686ef680fe130aea7055d029c43
parent3eebc6234b007e467d58f570e560c08385dd2319
Add missing sockaddr length and family validation to various protocols

Several protocol methods take a sockaddr as input.  In some cases the
sockaddr lengths were not being validated, or were validated after some
out-of-bounds accesses could occur.  Add requisite checking to various
protocol entry points, and convert some existing checks to assertions
where appropriate.

Reported by: syzkaller+KASAN
Reviewed by: tuexen, melifaro
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D29519

(cherry picked from commit f161d294b92732df6254a89f393ab24999e122bf)
15 files changed:
sys/dev/hyperv/hvsock/hv_sock.c
sys/netgraph/ng_socket.c
sys/netinet/in_pcb.c
sys/netinet/ip_divert.c
sys/netinet/raw_ip.c
sys/netinet/sctp_usrreq.c
sys/netinet/tcp_usrreq.c
sys/netinet/udp_usrreq.c
sys/netinet6/in6_pcb.c
sys/netinet6/raw_ip6.c
sys/netinet6/sctp6_usrreq.c
sys/netinet6/send.c
sys/netinet6/udp6_usrreq.c
sys/netipsec/keysock.c
sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c