Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 22 Feb 2013 15:46:15 +0400
Subject: Re: nginx world-readable logdir

On 22-Feb-2013 10:49:38 +0200, Henri Salo wrote:

 >>> So I think that ${subject} is just a misconfiguration.

 >> Welp I confirmed it on Fedora 16. So at least some things are
 >> affected.

 > Some distros are affected.

Alas for them... But the solution is simple.

 > Good to hear not all are.

# ...
mkdir -pm750 %{buildroot}%{_localstatedir}/log/%{name}
touch	%{buildroot}%{_localstatedir}/log/%{name}/access.log \

# ...
touch	%{_localstatedir}/log/%{name}/access.log \
chown -R root:wheel %{_localstatedir}/log/%{name}
chmod 750 %{_localstatedir}/log/%{name}
chmod 640 %{_localstatedir}/log/%{name}/*
# ...

# ...
%ghost %{_localstatedir}/log/%{name}/access.log
%ghost %{_localstatedir}/log/%{name}/error.log

The use of `touch` is preferred as it doesn't trash the existing logs
on package update, and explicit `chmod` and `chown` ensure that their
permissions are correct (Captain Obvious to the rescue, I know).

 > This is not just misconfiguration.

This issue isn't related to the nginx itself.
However, I'd agree that nginx could use restrictive mode for its' log

diff -burpN nginx-1.2.7.orig/src/core/ngx_log.c nginx-1.2.7/src/core/ngx_log.c
--- nginx-1.2.7.orig/src/core/ngx_log.c	2012-01-18 19:07:43.000000000 +0400
+++ nginx-1.2.7/src/core/ngx_log.c	2013-02-22 15:42:04.000000000 +0400
@@ -325,7 +325,7 @@ ngx_log_init(u_char *prefix)
     ngx_log_file.fd = ngx_open_file(name, NGX_FILE_APPEND,
-                                    NGX_FILE_DEFAULT_ACCESS);
+                                    NGX_FILE_USR_GRP_ACCESS);
     if (ngx_log_file.fd == NGX_INVALID_FILE) {
diff -burpN nginx-1.2.7.orig/src/os/unix/ngx_files.h nginx-1.2.7/src/os/unix/ngx_files.h
--- nginx-1.2.7.orig/src/os/unix/ngx_files.h	2012-03-27 20:42:34.000000000 +0400
+++ nginx-1.2.7/src/os/unix/ngx_files.h	2013-02-22 15:41:22.000000000 +0400
@@ -98,6 +98,7 @@ typedef struct {
 #endif /* NGX_HAVE_OPENAT */
+#define NGX_FILE_USR_GRP_ACCESS  0640
 #define NGX_FILE_OWNER_ACCESS    0600

Alexey V. Vissarionov aka Gremlin from Kremlin <gremlin ПРИ gremlin ТЧК ru>
GPG key ID: 0xEF3B1FA8, keyserver: hkp://
GPG key fingerprint: 8832 FE9F A791 F796 8AC9 6E4E 909D AC45 EF3B 1FA8

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.