On Sat, Feb 25, 2017 at 11:34:19PM -0500, Peter Colberg wrote:
> >Synopsis:      pfctl -T show not permitted when kern.securelevel=2
> >Category:      kernel
> >Environment:
>         System      : OpenBSD 6.0
>         Details     : OpenBSD 6.0 (GENERIC.MP) #2319: Tue Jul 26 13:00:43 MDT 
> 2016
>                          
> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> 
>         Architecture: OpenBSD.amd64
>         Machine     : amd64
> >Description:
>         When attempting to list the contents of a pf table and the
>         kernel is set to securelevel 2, pfctl -T show fails with
>         `Operation not permitted'. pfctl -vT show works as expected.
> >How-To-Repeat:
>         # sysctl kern.securelevel                                             
>                                                                               
>                                                                               
>       
>         kern.securelevel=1
> 
>         # pfctl -t test -T add 198.51.100.81
>         1 table created.
>         1/1 addresses added.
> 
>         # pfctl -t test -T show
>            198.51.100.81
> 
>         # pfctl -t test -vT show
>            198.51.100.81
>                 Cleared:     Sat Feb 25 22:57:50 2017
> 
>         # sysctl kern.securelevel=2          
>         kern.securelevel: 1 -> 2
> 
>         # pfctl -t test -T show
>         pfctl: Operation not permitted.
> 
>         # pfctl -t test -vT show
>            198.51.100.81
>                 Cleared:     Sat Feb 25 22:57:50 2017

In addition to DIOCRGETASTATS, permit DIOCRGETADDRS if securelevel > 1.

Index: sys/net/pf_ioctl.c
===================================================================
RCS file: /cvs/src/sys/net/pf_ioctl.c,v
retrieving revision 1.307
diff -u -p -r1.307 pf_ioctl.c
--- sys/net/pf_ioctl.c  30 Jan 2017 17:41:34 -0000      1.307
+++ sys/net/pf_ioctl.c  28 Feb 2017 05:21:15 -0000
@@ -917,6 +917,7 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a
                case DIOCRADDADDRS:
                case DIOCRDELADDRS:
                case DIOCRSETADDRS:
+               case DIOCRGETADDRS:
                case DIOCRGETASTATS:
                case DIOCRCLRASTATS:
                case DIOCRTSTADDRS:

Reply via email to