Description
A regression in the way hashes were calculated caused rules containing the address range syntax (x.x.x.x - y.y.y.y) that only differ in the address range(s) involved to be silently dropped as duplicates. Only the first of such rules is actually loaded into pf. Ranges expressed using the address[/mask-bits] syntax were not affected. Some keywords representing actions taken on a packet-matching rule, such as 'log', 'return tll', or 'dnpipe', may suffer from the same issue. It is unlikely that users have such configurations, as these rules would always be redundant. Affected rules are silently ignored, which can lead to unexpected behaviour including over- and underblocking.
Problem types
CWE-480: Use of Incorrect Operator
CWE-754: Improper Check for Unusual or Exceptional Conditions
CWE-1023: Incomplete Comparison with Missing Factors
Product status
15.0-RELEASE (release) before p5
14.4-RELEASE (release) before p1
14.3-RELEASE (release) before p10
Credits
Michael Gmelin
References
security.freebsd.org/advisories/FreeBSD-SA-26:09.pf.asc