Apply by doing
       cd /sys
       patch < nosuidcoredump.patch
       install -c -m 444 -o root -g bin sys/sysctl.h /usr/include
       cd /usr/src/usr.sbin/sysctl && make && make install

Index: kern/kern_sig.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_sig.c,v
retrieving revision 1.22
retrieving revision 1.25
diff -u -r1.22 -r1.25
--- kern_sig.c  1997/11/06 05:58:18     1.22
+++ kern_sig.c  1998/01/09 16:41:09     1.25
@@ -1103,6 +1103,8 @@
       /* NOTREACHED */
}

+int nosuidcoredump = 1;
+
/*
 * Dump core, into a file named "progname.core", unless the process was
 * setuid/setgid.
@@ -1127,6 +1129,8 @@
       if ((p->p_flag & P_SUGID) &&
           (error = suser(p->p_ucred, &p->p_acflag)) != 0)
               return (error);
+       if ((p->p_flag & P_SUGID) && nosuidcoredump)
+               return (EPERM);

       /* Don't dump if will exceed file size limit. */
       if (USPACE + ctob(vm->vm_dsize + vm->vm_ssize) >=

Index: kern/kern_sysctl.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_sysctl.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- kern_sysctl.c       1997/11/06 15:59:49     1.23
+++ kern_sysctl.c       1997/12/08 21:25:37     1.24
@@ -210,7 +210,7 @@
       int error, level, inthostid;
       extern char ostype[], osrelease[], osversion[], version[];
       extern int somaxconn, sominconn;
-       extern int usermount;
+       extern int usermount, nosuidcoredump;

       /* all sysctl names at this level are terminal */
       if (namelen != 1 && !(name[0] == KERN_PROC || name[0] == KERN_PROF))
@@ -305,6 +305,8 @@
       case KERN_RND:
               return (sysctl_rdstruct(oldp, oldlenp, newp, &rndstats,
                   sizeof(rndstats)));
+       case KERN_NOSUIDCOREDUMP:
+               return (sysctl_int(oldp, oldlenp, newp, newlen, &nosuidcoredump));
       default:
               return (EOPNOTSUPP);
       }

Index: sys/sysctl.h
===================================================================
RCS file: /cvs/src/sys/sys/sysctl.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- sysctl.h    1997/11/06 15:59:52     1.22
+++ sysctl.h    1997/12/08 21:25:34     1.23
@@ -145,7 +145,8 @@
#define        KERN_SOMINCONN          29      /* int: half-open controllable param */
#define        KERN_USERMOUNT          30      /* int: users may mount filesystems */
#define KERN_RND               31      /* struct: rnd(4) statistics */
-#define        KERN_MAXID              32      /* number of valid kern ids */
+#define KERN_NOSUIDCOREDUMP    32      /* int: no setuid coredumps ever */
+#define        KERN_MAXID              33      /* number of valid kern ids */

#define CTL_KERN_NAMES { \
       { 0, 0 }, \
@@ -180,6 +181,7 @@
       { "sominconn", CTLTYPE_INT }, \
       { "usermount", CTLTYPE_INT }, \
       { "random", CTLTYPE_STRUCT }, \
+       { "nosuidcoredump", CTLTYPE_INT }, \
}

/*