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 }, \
 }
 
 /*
