opnsense-src/sys/netinet6
Kristof Provost e9ca883b12 netinet6: Don't return non-IPv6 enabled interfaces from in6_getlinkifnet()
There are scenarios where we can end up looking up an interface by its scope and
turn up an interface that doesn't have IPv6 enabled on it. If that happens we
could end up dereferencing a NULL pointer accessing ifp->if_afdata[AF_INET6].
Check for this.

One such scenario is if a firewall rewrites a destination address to a
link-local address, with an embedded scope for such an interface. Attach a test
case which provokes this.

PR:		288263
Reported by:	Robert Morris <rtm@lcs.mit.edu>
Reviewed by:	zlei
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D51500
2025-07-29 15:13:10 +02:00
..
dest6.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
frag6.c vm_lowmem: Fix signature mismatches in vm_lowmem callbacks 2025-03-04 20:18:52 -05:00
icmp6.c counter(9): rate limit periods may be more than 1 second 2025-06-25 19:56:22 +02:00
icmp6.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
in6.c netinet6: Remove a set but not used global variable in6_maxmtu 2025-05-21 18:09:01 +08:00
in6.h ip6_cksum.c: generalize in6_cksum_partial() to allow L2 headers in passed mbuf 2025-03-13 17:56:22 +02:00
in6_cksum.c ip6_cksum.c: generalize in6_cksum_partial() to allow L2 headers in passed mbuf 2025-03-13 17:56:22 +02:00
in6_fib.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
in6_fib.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
in6_fib_algo.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
in6_gif.c if_gif(4): Support the NOCLAMP flag to change MTU handling for IPv6 2025-07-21 22:47:28 +09:00
in6_ifattach.c inet6: RFC 8981 SLAAC Temporary Address Extensions 2025-06-20 18:16:14 +02:00
in6_ifattach.h inet6: RFC 8981 SLAAC Temporary Address Extensions 2025-06-20 18:16:14 +02:00
in6_jail.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
in6_mcast.c netinet: Remove stale references to Giant from comments 2024-01-27 13:51:13 -05:00
in6_pcb.c netinet6: allow binding to anycast addresses 2025-04-24 01:50:38 +01:00
in6_pcb.h inpcb: Add FIB-aware inpcb lookup 2025-02-06 14:14:39 +00:00
in6_proto.c inet6: RFC 8981 SLAAC Temporary Address Extensions 2025-06-20 18:16:21 +02:00
in6_rmx.c in6_rmx: remove unnecessary socketvar.h 2024-05-07 14:15:56 -07:00
in6_rss.c sys: Remove $FreeBSD$: two-line .c pattern 2023-08-16 11:54:30 -06:00
in6_rss.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
in6_src.c netinet: add a probe point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters 2024-04-08 17:29:59 +02:00
in6_var.h netinet6: Remove ndpr_raf_ra_derived flag 2025-06-13 03:47:06 +09:00
ip6.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
ip6_ecn.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ip6_fastfwd.c ip: Defer checks for an unspecified dstaddr until after pfil hooks 2025-01-16 16:45:16 +00:00
ip6_forward.c netinet6: Do not forward or send ICMPv6 messages to the unspec address 2025-04-22 14:54:37 +00:00
ip6_gre.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
ip6_id.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
ip6_input.c inet6: RFC 8981 SLAAC Temporary Address Extensions 2025-06-20 18:16:21 +02:00
ip6_mroute.c netinet*: Add assertions for some places that don't support M_EXTPG mbufs 2024-10-31 16:32:32 -04:00
ip6_mroute.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ip6_output.c socket: Move SO_SETFIB handling to protocol layers 2025-02-06 14:16:21 +00:00
ip6_var.h vm_lowmem: Fix signature mismatches in vm_lowmem callbacks 2025-03-04 20:18:52 -05:00
ip_fw_nat64.h ipfw: migrate ipfw to 32-bit size rule numbers 2025-03-03 21:15:17 +03:00
ip_fw_nptv6.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mld6.c mld: allow sysctls to be set per vnet 2025-07-19 21:47:06 +02:00
mld6.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mld6_var.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nd6.c netinet6: Remove ndpr_raf_ra_derived flag 2025-06-13 03:47:06 +09:00
nd6.h inet6: RFC 8981 SLAAC Temporary Address Extensions 2025-06-20 18:16:21 +02:00
nd6_nbr.c netinet: add a probe point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters 2024-04-08 17:29:59 +02:00
nd6_rtr.c inet6: RFC 8981 SLAAC Temporary Address Extensions 2025-06-20 18:16:21 +02:00
pim6.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
pim6_var.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
raw_ip6.c netinet6: allow binding a raw socket to an anycast address 2025-07-15 06:12:45 +01:00
raw_ip6.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
route6.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
scope6.c netinet6: Don't return non-IPv6 enabled interfaces from in6_getlinkifnet() 2025-07-29 15:13:10 +02:00
scope6_var.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
sctp6_usrreq.c netinet: Fix getcred sysctl handlers to do nothing if no input is given 2025-03-20 01:33:44 +00:00
sctp6_var.h sctp: cleanup cdefs.h include 2023-08-18 15:25:34 +02:00
send.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
send.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tcp6_var.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
udp6_usrreq.c udp: Fix a inpcb refcount leak in the tunnel receive path 2025-07-25 17:39:00 +00:00
udp6_var.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00