|
|
Message-ID: <20130222114615.GC27037@gremlin.ru>
Date: Fri, 22 Feb 2013 15:46:15 +0400
From: gremlin@...mlin.ru
To: oss-security@...ts.openwall.com
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.
%install
# ...
mkdir -pm750 %{buildroot}%{_localstatedir}/log/%{name}
touch %{buildroot}%{_localstatedir}/log/%{name}/access.log \
%{buildroot}%{_localstatedir}/log/%{name}/error.log
%post
# ...
touch %{_localstatedir}/log/%{name}/access.log \
%{_localstatedir}/log/%{name}/error.log
chown -R root:wheel %{_localstatedir}/log/%{name}
chmod 750 %{_localstatedir}/log/%{name}
chmod 640 %{_localstatedir}/log/%{name}/*
# ...
%files
# ...
%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
files:
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_CREATE_OR_OPEN,
- NGX_FILE_DEFAULT_ACCESS);
+ NGX_FILE_USR_GRP_ACCESS);
if (ngx_log_file.fd == NGX_INVALID_FILE) {
ngx_log_stderr(ngx_errno,
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_DEFAULT_ACCESS 0644
+#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://subkeys.pgp.net
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.