[Bug 280701] FreeBSD-SA-24:05 fix breaks ICMP/ICMP6 states handling in pf firewall (ping, traceroute)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 27 Aug 2024 11:42:26 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280701
--- Comment #58 from Franco Fichtner <franco@opnsense.org> ---
I found these inconsistencies in the ported patches from OpenBSD:
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index ef488bad26d..c9180e877d5 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -1878,7 +1878,7 @@ pf_icmp_mapping(struct pf_pdesc *pd, u_int8_t type,
*/
*icmp_dir = PF_IN;
*virtual_type = MLD_LISTENER_QUERY;
- *virtual_id = 0;
+ *virtual_id = 0; /* XXX missing fake id */
break;
}
case MLD_MTRACE:
@@ -1892,7 +1892,8 @@ pf_icmp_mapping(struct pf_pdesc *pd, u_int8_t type,
*icmp_dir = PF_IN;
case ND_NEIGHBOR_ADVERT: {
*virtual_type = ND_NEIGHBOR_SOLICIT;
- *virtual_id = 0;
+ *multi = PF_ICMP_MULTI_SOLICITED;
+ *virtual_id = 0; /* XXX missing fake id */
break;
}
From early testing, however, it's not working any better with plugging back
PF_ICMP_MULTI_SOLICITED only. I'm unsure about the mock id effect. But what I
can say is that it's better to skip dealing with PF_ICMP_MULTI_SOLICITED as
OpenBSD did in 2012 too:
https://github.com/openbsd/src/commit/2633ae8c4c8a64
Another patch from 2023 is relevant as well as it disables half the state
tracking for unsolicited advertise cases:
https://github.com/openbsd/src/commit/49f39043a02d6
--
You are receiving this mail because:
You are the assignee for the bug.