[dovecot] Re: dovecot and grsecurity (problem with resource limits)
Timo Sirainen
tss at iki.fi
Sun Apr 27 04:19:31 EEST 2003
On Sun, 2003-04-27 at 03:05, Heiko Zuerker wrote:
> Apr 26 19:20:04 src at gate imap-login: Login: hz [192.168.0.11]
> Apr 26 19:20:05 src at gate kernel: grsec: attempted resource overstep by
> requesting 37 for RLIMIT_NPROC against limit 0 by (dovecot:10246) UID(0)
> EUID(0), parent (dovecot:634) UID(0) EUID(0)
Openwall kernel had the same problem. Hmm. I'd like to make sure that
imap-login can't fork(), but RLIMIT_NPROC seems to be total number of
processes. When does it get enforced? Immediately at setrlimit() or at
exec()? Does this work:
Index: src/login-common/main.c
===================================================================
RCS file: /home/cvs/dovecot/src/login-common/main.c,v
retrieving revision 1.9
diff -u -r1.9 main.c
--- src/login-common/main.c 6 Mar 2003 21:44:31 -0000 1.9
+++ src/login-common/main.c 27 Apr 2003 01:17:46 -0000
@@ -4,6 +4,7 @@
#include "ioloop.h"
#include "lib-signals.h"
#include "restrict-access.h"
+#include "restrict-process-size.h"
#include "process-title.h"
#include "fd-close-on-exec.h"
#include "auth-connection.h"
@@ -129,6 +130,9 @@
static void drop_privileges(const char *name)
{
+ /* make sure we can't fork() */
+ restrict_process_size((unsigned int)-1, 0);
+
/* Log file or syslog opening probably requires roots */
open_logfile(name);
cvs server: Diffing src/master
Index: src/master/login-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/login-process.c,v
retrieving revision 1.40
diff -u -r1.40 login-process.c
--- src/master/login-process.c 15 Apr 2003 16:58:48 -0000 1.40
+++ src/master/login-process.c 27 Apr 2003 01:17:47 -0000
@@ -479,7 +479,7 @@
i_fatal("chdir(%s) failed: %m", set->login_dir);
}
- restrict_process_size(group->set->process_size, 0);
+ restrict_process_size(group->set->process_size, (unsigned int)-1);
/* make sure we don't leak syslog fd, but do it last so that
any errors above will be logged */
More information about the dovecot
mailing list