misc/103304: pf accepts nonexistent queue in rules

Volker Werth volker at vwsoft.com
Fri Sep 15 09:00:34 PDT 2006


>Number:         103304
>Category:       misc
>Synopsis:       pf accepts nonexistent queue in rules
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 15 16:00:32 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Volker Werth
>Release:        6.2-PRERELEASE
>Organization:
>Environment:
FreeBSD bellona.sz.vwsoft.com 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #9: Wed Sep 13 22:08:28 CEST 2006     root at bellona.sz.vwsoft.com:/usr/obj/usr/src/sys/BELLONA  i386
>Description:
pf silently accepts rules which shall be queued to a non-existent queue.

Example:

if_int="vr0"
if_ext="ng0"

altq on $if_ext cbq bandwidth 64Kb queue { q_low}
queue q_low cbq( borrow rio default )

pass quick on $if_int all
pass quick on $if_ext proto icmp all queue ( nonexistent )
pass quick on $if_ext all queue ( q_low )

which creates _one_ queue but queues to two different (one non-exist) queues.

pfctl -gf [file] does not claim about the missing queue which might lead the administrator into unwanted results (haven't checked if it might lead pf into a failure situation).

pfctl -sa gives:

FILTER RULES:
pass quick on vr0 all
pass quick on ng0 proto icmp all queue nonexistent
pass quick on ng0 all queue q_low

ALTQ:
queue root_ng0 bandwidth 64Kb priority 0 cbq( wrr root ) {q_low}
queue  q_low bandwidth 64Kb cbq( rio borrow default )

This is just an example rule. IF names and proto's used do not matter here.
>How-To-Repeat:

>Fix:
pf should at least claim about the nonexistent queue and deny loading.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list