forked from pool/systemd
Accepting request 199760 from Base:System
- Move symlink migration trigger to post (bnc#821800). -add CVE-2013-4288 to changes (forwarded request 199741 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/199760 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=159
This commit is contained in:
parent
4ca16fb568
commit
5a4cb2059c
75
0009-polkit-Avoid-race-condition-in-scraping-proc.patch
Normal file
75
0009-polkit-Avoid-race-condition-in-scraping-proc.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
From 851d079d0172539bf904abb58edd80d7cfe487ca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Colin Walters <walters@verbum.org>
|
||||||
|
Date: Thu, 22 Aug 2013 13:55:21 -0400
|
||||||
|
Subject: [PATCH 9/9] polkit: Avoid race condition in scraping /proc
|
||||||
|
|
||||||
|
If a calling process execve()s a setuid program, it can appear to be
|
||||||
|
uid 0. Since we're receiving requests over DBus, avoid this by simply
|
||||||
|
passing system-bus-name as a subject.
|
||||||
|
---
|
||||||
|
src/shared/polkit.c | 31 +++++--------------------------
|
||||||
|
1 file changed, 5 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/shared/polkit.c b/src/shared/polkit.c
|
||||||
|
index cea7074..1c5e9e3 100644
|
||||||
|
--- a/src/shared/polkit.c
|
||||||
|
+++ b/src/shared/polkit.c
|
||||||
|
@@ -38,12 +38,8 @@ int verify_polkit(
|
||||||
|
|
||||||
|
#ifdef ENABLE_POLKIT
|
||||||
|
DBusMessage *m = NULL, *reply = NULL;
|
||||||
|
- const char *unix_process = "unix-process", *pid = "pid", *starttime = "start-time", *cancel_id = "";
|
||||||
|
+ const char *system_bus_name = "system-bus-name", *name = "name", *cancel_id = "";
|
||||||
|
uint32_t flags = interactive ? 1 : 0;
|
||||||
|
- pid_t pid_raw;
|
||||||
|
- uint32_t pid_u32;
|
||||||
|
- unsigned long long starttime_raw;
|
||||||
|
- uint64_t starttime_u64;
|
||||||
|
DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant;
|
||||||
|
int r;
|
||||||
|
dbus_bool_t authorized = FALSE, challenge = FALSE;
|
||||||
|
@@ -68,14 +64,6 @@ int verify_polkit(
|
||||||
|
|
||||||
|
#ifdef ENABLE_POLKIT
|
||||||
|
|
||||||
|
- pid_raw = bus_get_unix_process_id(c, sender, error);
|
||||||
|
- if (pid_raw == 0)
|
||||||
|
- return -EINVAL;
|
||||||
|
-
|
||||||
|
- r = get_starttime_of_pid(pid_raw, &starttime_raw);
|
||||||
|
- if (r < 0)
|
||||||
|
- return r;
|
||||||
|
-
|
||||||
|
m = dbus_message_new_method_call(
|
||||||
|
"org.freedesktop.PolicyKit1",
|
||||||
|
"/org/freedesktop/PolicyKit1/Authority",
|
||||||
|
@@ -86,22 +74,13 @@ int verify_polkit(
|
||||||
|
|
||||||
|
dbus_message_iter_init_append(m, &iter_msg);
|
||||||
|
|
||||||
|
- pid_u32 = (uint32_t) pid_raw;
|
||||||
|
- starttime_u64 = (uint64_t) starttime_raw;
|
||||||
|
-
|
||||||
|
if (!dbus_message_iter_open_container(&iter_msg, DBUS_TYPE_STRUCT, NULL, &iter_struct) ||
|
||||||
|
- !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &unix_process) ||
|
||||||
|
+ !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &system_bus_name) ||
|
||||||
|
!dbus_message_iter_open_container(&iter_struct, DBUS_TYPE_ARRAY, "{sv}", &iter_array) ||
|
||||||
|
!dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) ||
|
||||||
|
- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &pid) ||
|
||||||
|
- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "u", &iter_variant) ||
|
||||||
|
- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT32, &pid_u32) ||
|
||||||
|
- !dbus_message_iter_close_container(&iter_dict, &iter_variant) ||
|
||||||
|
- !dbus_message_iter_close_container(&iter_array, &iter_dict) ||
|
||||||
|
- !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) ||
|
||||||
|
- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &starttime) ||
|
||||||
|
- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "t", &iter_variant) ||
|
||||||
|
- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT64, &starttime_u64) ||
|
||||||
|
+ !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &name) ||
|
||||||
|
+ !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "s", &iter_variant) ||
|
||||||
|
+ !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_STRING, &sender) ||
|
||||||
|
!dbus_message_iter_close_container(&iter_dict, &iter_variant) ||
|
||||||
|
!dbus_message_iter_close_container(&iter_array, &iter_dict) ||
|
||||||
|
!dbus_message_iter_close_container(&iter_struct, &iter_array) ||
|
||||||
|
--
|
||||||
|
1.8.1.4
|
||||||
|
|
@ -10,8 +10,10 @@ configuration), needed by openSUSE (bnc#809420).
|
|||||||
units/systemd-sysctl.service.in | 1 +
|
units/systemd-sysctl.service.in | 1 +
|
||||||
2 files changed, 9 insertions(+)
|
2 files changed, 9 insertions(+)
|
||||||
|
|
||||||
--- systemd-206.orig/src/sysctl/sysctl.c
|
Index: systemd-207/src/sysctl/sysctl.c
|
||||||
+++ systemd-206/src/sysctl/sysctl.c
|
===================================================================
|
||||||
|
--- systemd-207.orig/src/sysctl/sysctl.c
|
||||||
|
+++ systemd-207/src/sysctl/sysctl.c
|
||||||
@@ -26,6 +26,7 @@
|
@@ -26,6 +26,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
@ -20,7 +22,7 @@ configuration), needed by openSUSE (bnc#809420).
|
|||||||
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
@@ -297,6 +298,13 @@ int main(int argc, char *argv[]) {
|
@@ -299,6 +300,13 @@ int main(int argc, char *argv[]) {
|
||||||
} else {
|
} else {
|
||||||
_cleanup_strv_free_ char **files = NULL;
|
_cleanup_strv_free_ char **files = NULL;
|
||||||
char **f;
|
char **f;
|
||||||
@ -34,13 +36,16 @@ configuration), needed by openSUSE (bnc#809420).
|
|||||||
|
|
||||||
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
|
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
--- systemd-206.orig/units/systemd-sysctl.service.in
|
Index: systemd-207/units/systemd-sysctl.service.in
|
||||||
+++ systemd-206/units/systemd-sysctl.service.in
|
===================================================================
|
||||||
@@ -20,6 +20,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys
|
--- systemd-207.orig/units/systemd-sysctl.service.in
|
||||||
|
+++ systemd-207/units/systemd-sysctl.service.in
|
||||||
|
@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys
|
||||||
ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d
|
ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d
|
||||||
ConditionDirectoryNotEmpty=|/etc/sysctl.d
|
ConditionDirectoryNotEmpty=|/etc/sysctl.d
|
||||||
ConditionDirectoryNotEmpty=|/run/sysctl.d
|
ConditionDirectoryNotEmpty=|/run/sysctl.d
|
||||||
+ConditionPathExistsGlob=|/boot/sysctl.conf-*
|
+ConditionPathExistsGlob=|/boot/sysctl.conf-*
|
||||||
|
+RequiresMountsFor=/boot
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
|
@ -1,3 +1,36 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com
|
||||||
|
|
||||||
|
- Move symlink migration trigger to post (bnc#821800).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch
|
||||||
|
VUL-0: polkit: process subject race condition [bnc#835827]
|
||||||
|
CVE-2013-4288
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- Build with --disable-ima as the openSUSE kernel
|
||||||
|
does not support IMA (CONFIG_IMA is not set)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- Build with --disable-smack as the openSUSE kernel
|
||||||
|
does not support smack (CONFIG_SECURITY_SMACK is not set)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com
|
||||||
|
|
||||||
|
- Don't use a trigger to create symlink for sysctl.conf, always run
|
||||||
|
the test on %post (bnc#840864).
|
||||||
|
- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to
|
||||||
|
ensure /boot is mounted before reading /boot/sysctl.conf-*
|
||||||
|
(bnc#809420).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
@ -187,6 +187,8 @@ Patch52: 0005-core-cgroup-first-print-then-free.patch
|
|||||||
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
||||||
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
||||||
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827]
|
||||||
|
Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||||
@ -441,6 +443,7 @@ cp %{SOURCE7} m4/
|
|||||||
%patch52 -p1
|
%patch52 -p1
|
||||||
%patch53 -p1
|
%patch53 -p1
|
||||||
%patch54 -p1
|
%patch54 -p1
|
||||||
|
%patch55 -p1
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -479,6 +482,8 @@ export V=1
|
|||||||
--with-rc-local-script-path-start=/etc/init.d/boot.local \
|
--with-rc-local-script-path-start=/etc/init.d/boot.local \
|
||||||
--with-rc-local-script-path-stop=/etc/init.d/halt.local \
|
--with-rc-local-script-path-stop=/etc/init.d/halt.local \
|
||||||
--with-debug-shell=/bin/bash \
|
--with-debug-shell=/bin/bash \
|
||||||
|
--disable-smack \
|
||||||
|
--disable-ima \
|
||||||
CFLAGS="%{optflags}"
|
CFLAGS="%{optflags}"
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
@ -651,19 +656,18 @@ if [ "$1" -eq 1 ]; then
|
|||||||
remote-fs.target >/dev/null 2>&1 || :
|
remote-fs.target >/dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%triggerpostun -- systemd < 194
|
|
||||||
# migrate any symlink which may refer to the old path
|
|
||||||
for f in $(find /etc/systemd/system -type l -xtype l); do
|
|
||||||
new_target="/usr$(readlink $f)"
|
|
||||||
[ -f "$new_target" ] && ln -s -f $new_target $f || :
|
|
||||||
done
|
|
||||||
|
|
||||||
# since v207 /etc/sysctl.conf is no longer parsed, however
|
# since v207 /etc/sysctl.conf is no longer parsed, however
|
||||||
# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf
|
# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf
|
||||||
if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then
|
if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then
|
||||||
/bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || :
|
/bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# migrate any symlink which may refer to the old path
|
||||||
|
for f in $(find /etc/systemd/system -type l -xtype l); do
|
||||||
|
new_target="/usr$(readlink $f)"
|
||||||
|
[ -f "$new_target" ] && ln -s -f $new_target $f || :
|
||||||
|
done
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
if [ $1 -ge 1 ]; then
|
if [ $1 -ge 1 ]; then
|
||||||
|
@ -1,3 +1,36 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com
|
||||||
|
|
||||||
|
- Move symlink migration trigger to post (bnc#821800).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch
|
||||||
|
VUL-0: polkit: process subject race condition [bnc#835827]
|
||||||
|
CVE-2013-4288
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- Build with --disable-ima as the openSUSE kernel
|
||||||
|
does not support IMA (CONFIG_IMA is not set)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- Build with --disable-smack as the openSUSE kernel
|
||||||
|
does not support smack (CONFIG_SECURITY_SMACK is not set)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com
|
||||||
|
|
||||||
|
- Don't use a trigger to create symlink for sysctl.conf, always run
|
||||||
|
the test on %post (bnc#840864).
|
||||||
|
- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to
|
||||||
|
ensure /boot is mounted before reading /boot/sysctl.conf-*
|
||||||
|
(bnc#809420).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
18
systemd.spec
18
systemd.spec
@ -182,6 +182,8 @@ Patch52: 0005-core-cgroup-first-print-then-free.patch
|
|||||||
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
||||||
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
||||||
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827]
|
||||||
|
Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||||
@ -436,6 +438,7 @@ cp %{SOURCE7} m4/
|
|||||||
%patch52 -p1
|
%patch52 -p1
|
||||||
%patch53 -p1
|
%patch53 -p1
|
||||||
%patch54 -p1
|
%patch54 -p1
|
||||||
|
%patch55 -p1
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -474,6 +477,8 @@ export V=1
|
|||||||
--with-rc-local-script-path-start=/etc/init.d/boot.local \
|
--with-rc-local-script-path-start=/etc/init.d/boot.local \
|
||||||
--with-rc-local-script-path-stop=/etc/init.d/halt.local \
|
--with-rc-local-script-path-stop=/etc/init.d/halt.local \
|
||||||
--with-debug-shell=/bin/bash \
|
--with-debug-shell=/bin/bash \
|
||||||
|
--disable-smack \
|
||||||
|
--disable-ima \
|
||||||
CFLAGS="%{optflags}"
|
CFLAGS="%{optflags}"
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
@ -646,19 +651,18 @@ if [ "$1" -eq 1 ]; then
|
|||||||
remote-fs.target >/dev/null 2>&1 || :
|
remote-fs.target >/dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%triggerpostun -- systemd < 194
|
|
||||||
# migrate any symlink which may refer to the old path
|
|
||||||
for f in $(find /etc/systemd/system -type l -xtype l); do
|
|
||||||
new_target="/usr$(readlink $f)"
|
|
||||||
[ -f "$new_target" ] && ln -s -f $new_target $f || :
|
|
||||||
done
|
|
||||||
|
|
||||||
# since v207 /etc/sysctl.conf is no longer parsed, however
|
# since v207 /etc/sysctl.conf is no longer parsed, however
|
||||||
# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf
|
# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf
|
||||||
if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then
|
if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then
|
||||||
/bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || :
|
/bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# migrate any symlink which may refer to the old path
|
||||||
|
for f in $(find /etc/systemd/system -type l -xtype l); do
|
||||||
|
new_target="/usr$(readlink $f)"
|
||||||
|
[ -f "$new_target" ] && ln -s -f $new_target $f || :
|
||||||
|
done
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
if [ $1 -ge 1 ]; then
|
if [ $1 -ge 1 ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user