On Thu, May 13, 2021 at 10:40:40AM -0600, Theo de Raadt wrote:
> +                               if (pledge("stdio rpath inet recvfd sendfd "
> +                                   "wpath cpath proc tty getpw", NULL) == -1)
> 
> Please change the order:
> 
> stdio rpath wpath cpath inet recvfd sendfd proc tty getpw
> 
> (It remains extremely permissive).

Yes.  Further refactoring may reduce the needed syscalls in the future?

OK?

Thanks,
Jan

Index: monitor.c
===================================================================
RCS file: /cvs/src/libexec/ftpd/monitor.c,v
retrieving revision 1.26
diff -u -p -r1.26 monitor.c
--- monitor.c   28 Jun 2019 13:32:53 -0000      1.26
+++ monitor.c   13 May 2021 17:12:18 -0000
@@ -295,11 +295,17 @@ handle_cmds(void)
                                    sizeof(slavequit));
                                break;
                        case AUTH_SLAVE:
+                               if (pledge("stdio rpath wpath cpath inet recvfd"
+                                  " sendfd proc tty getpw", NULL) == -1)
+                                       fatalx("pledge");
                                /* User-privileged slave */
                                debugmsg("user-privileged slave started");
                                return;
                                /* NOTREACHED */
                        case AUTH_MONITOR:
+                               if (pledge("stdio inet sendfd recvfd proc",
+                                   NULL) == -1)
+                                       fatalx("pledge");
                                /* Post-auth monitor */
                                debugmsg("monitor went into post-auth phase");
                                state = POSTAUTH;

Reply via email to