From e383f1ce2c799b29ce95a1477059fff1d70e31f0 Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Fri, 14 Sep 2012 11:09:09 +0200 Subject: [PATCH] Add patch fixing CVE 2012-4425 --- 0003-CVE-2012-4425.patch | 60 ++++++++++++++++++++++++++++++++++++++++ spice-gtk.spec | 11 +++++++- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 0003-CVE-2012-4425.patch diff --git a/0003-CVE-2012-4425.patch b/0003-CVE-2012-4425.patch new file mode 100644 index 0000000..ba9b26d --- /dev/null +++ b/0003-CVE-2012-4425.patch @@ -0,0 +1,60 @@ +diff --git a/configure.ac b/configure.ac +index 3841c56..b2defd3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -243,6 +243,8 @@ else + EXTERNAL_PNP_IDS="$with_pnp_ids_path" + fi + ++AC_CHECK_FUNCS(clearenv) ++ + PKG_CHECK_MODULES(GLIB2, glib-2.0 >= 2.22) + AC_SUBST(GLIB2_CFLAGS) + AC_SUBST(GLIB2_LIBS) +diff --git a/gtk/spice-client-glib-usb-acl-helper.c b/gtk/spice-client-glib-usb-acl-helper.c +index 724d62a..93b9b3a 100644 +--- a/gtk/spice-client-glib-usb-acl-helper.c ++++ b/gtk/spice-client-glib-usb-acl-helper.c +@@ -158,7 +158,8 @@ static void cleanup(void) + if (state == STATE_WAITING_FOR_STDIN_EOF) + set_facl(path, getuid(), 0); + +- g_main_loop_quit(loop); ++ if (loop) ++ g_main_loop_quit(loop); + } + + /* Not available in polkit < 0.101 */ +@@ -311,11 +312,32 @@ polkit_authority_get_sync (GCancellable *cancellable, GError **error) + } + #endif + ++#ifndef HAVE_CLEARENV ++extern char **environ; ++ ++static int ++clearenv (void) ++{ ++ if (environ != NULL) ++ environ[0] = NULL; ++ return 0; ++} ++#endif ++ + int main(void) + { + pid_t parent_pid; + GInputStream *stdin_unix_stream; + ++ /* Nuke the environment to get a well-known and sanitized ++ * environment to avoid attacks via e.g. the DBUS_SYSTEM_BUS_ADDRESS ++ * environment variable and similar. ++ */ ++ if (clearenv () != 0) { ++ FATAL_ERROR("Error clearing environment: %s\n", g_strerror (errno)); ++ return 1; ++ } ++ + g_type_init(); + + loop = g_main_loop_new(NULL, FALSE); diff --git a/spice-gtk.spec b/spice-gtk.spec index 8f3a7f4..5beaa75 100644 --- a/spice-gtk.spec +++ b/spice-gtk.spec @@ -13,7 +13,7 @@ Name: spice-gtk Version: 0.12 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A GTK+ widget for SPICE clients Group: System Environment/Libraries @@ -22,6 +22,7 @@ URL: http://spice-space.org/page/Spice-Gtk Source0: http://www.spice-space.org/download/gtk/%{name}-%{version}%{?_version_suffix}.tar.bz2 Patch1: 0001-Fix-parsing-URI-query.patch Patch2: 0002-python-fix-Spice.Audio-binding.patch +Patch3: 0003-CVE-2012-4425.patch BuildRequires: intltool BuildRequires: gtk2-devel >= 2.14 @@ -49,6 +50,8 @@ BuildRequires: pyparsing BuildRequires: spice-protocol # Hack because of bz #613466 BuildRequires: libtool +# For patch #3 +BuildRequires: autoconf automake Requires: spice-glib%{?_isa} = %{version}-%{release} %description @@ -150,6 +153,9 @@ fi pushd spice-gtk-%{version} %patch1 -p1 %patch2 -p1 +%patch3 -p1 +# Patch 3 changes configure.ac +autoreconf -fi popd %if %{with_gtk3} @@ -262,6 +268,9 @@ rm -f %{buildroot}%{_libdir}/python*/site-packages/*.la %{_bindir}/spicy-stats %changelog +* Fri Sep 14 2012 Christophe Fergeau - 0.12-5 +- Add patch fixing CVE 2012-4425 + * Tue May 15 2012 Marc-André Lureau - 0.12-4 - re-Add back spice-protocol BuildRequires to help some deps magic happen