Apply by doing:
       cd /usr/src/sys/kern
       patch -p0 < 007_chflags.patch

And then rebuild your kernel.

Index: vfs_syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.56
diff -u -r1.56 vfs_syscalls.c
--- vfs_syscalls.c      1999/02/26 04:51:17     1.56
+++ vfs_syscalls.c      1999/07/30 21:21:44
@@ -1530,10 +1530,19 @@
       else if (SCARG(uap, flags) == VNOVAL)
               error = EINVAL;
       else {
+               if (suser(p->p_ucred, &p->p_acflag)) {
+                       if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) != 0)
+                               goto out;
+                       if (vattr.va_type == VCHR || vattr.va_type == VBLK) {
+                               error = EINVAL;
+                               goto out;
+                       }
+               }
               VATTR_NULL(&vattr);
               vattr.va_flags = SCARG(uap, flags);
               error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
       }
+out:
       vput(vp);
       return (error);
}
@@ -1567,10 +1576,20 @@
       else if (SCARG(uap, flags) == VNOVAL)
               error = EINVAL;
       else {
+               if (suser(p->p_ucred, &p->p_acflag)) {
+                       if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p))
+                           != 0)
+                               goto out;
+                       if (vattr.va_type == VCHR || vattr.va_type == VBLK) {
+                               error = EINVAL;
+                               goto out;
+                       }
+               }
               VATTR_NULL(&vattr);
               vattr.va_flags = SCARG(uap, flags);
               error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
       }
+out:
       VOP_UNLOCK(vp, 0, p);
       return (error);
}