Bug#929705: unblock: nautilus/3.30.5-2
Iain Lane
laney at debian.org
Wed May 29 13:05:33 BST 2019
Package: release.debian.org
Severity: normal
User: release.debian.org at packages.debian.org
Usertags: unblock
Please unblock package nautilus.
Nautilus contains an embedded copy of the thumbnailing code from
`gnome-desktop3'. This has received several updates upstream, which it'd
be great to get into buster. Here's my changelog entry, to avoid
repeating myself too much:
* Update gnome-desktop code. Nautilus contains a copy of this code,
which originated in gnome-desktop3.
+ Fixes a potential crash during thumbnailing
+ Fixes thumbnailer on 32-bit systems where /lib64 is not available.
+ Also improves handling of usrmerged and non-usrmerged systems.
+ Mounts the fontconfig cache dir, to improve performance if fontconfig
is used
- Add a corresponding BD on libfontconfig1-dev, to fetch the needed
variable from its pcfile.
+ Fixes seccomp filter bypass. CVE-2019-11461
+ Closes: #928054
I don't actually know how the CVE could be triggered from Nautilus, but
it got 'medium' severity and a request from the security team to be
fixed. That's the main reason for this upload, but there are also other
important fixes in this code too. I'd be grateful if you could consider
it for buster.
unblock nautilus/3.30.5-2
Cheers,
--
Iain Lane [ iain at orangesquash.org.uk ]
Debian Developer [ laney at debian.org ]
Ubuntu Developer [ laney at ubuntu.com ]
-------------- next part --------------
diff -Nru nautilus-3.30.5/debian/changelog nautilus-3.30.5/debian/changelog
--- nautilus-3.30.5/debian/changelog 2018-12-22 13:53:04.000000000 +0000
+++ nautilus-3.30.5/debian/changelog 2019-05-29 12:47:33.000000000 +0100
@@ -1,3 +1,20 @@
+nautilus (3.30.5-2) unstable; urgency=medium
+
+ * debian/control{,.in}, gbp.conf: Update debian branch to debian/buster
+ * Update gnome-desktop code. Nautilus contains a copy of this code,
+ which originated in gnome-desktop3.
+ + Fixes a potential crash during thumbnailing
+ + Fixes thumbnailer on 32-bit systems where /lib64 is not available.
+ + Also improves handling of usrmerged and non-usrmerged systems.
+ + Mounts the fontconfig cache dir, to improve performance if fontconfig
+ is used
+ - Add a corresponding BD on libfontconfig1-dev, to fetch the needed
+ variable from its pcfile.
+ + Fixes seccomp filter bypass. CVE-2019-11461
+ + Closes: #928054
+
+ -- Iain Lane <laney at debian.org> Wed, 29 May 2019 12:47:33 +0100
+
nautilus (3.30.5-1) unstable; urgency=medium
* New upstream release
diff -Nru nautilus-3.30.5/debian/control nautilus-3.30.5/debian/control
--- nautilus-3.30.5/debian/control 2018-12-22 13:53:04.000000000 +0000
+++ nautilus-3.30.5/debian/control 2019-05-29 12:47:33.000000000 +0100
@@ -15,6 +15,7 @@
gobject-introspection (>= 0.9.12-4~),
gtk-doc-tools (>= 1.10),
libatk1.0-dev (>= 1.32.0),
+ libfontconfig1-dev,
libgail-3-dev,
libgexiv2-dev (>= 0.10.0),
libgirepository1.0-dev (>= 0.10.7-1~),
@@ -41,7 +42,7 @@
Rules-Requires-Root: no
Homepage: https://wiki.gnome.org/action/show/Apps/Nautilus
Vcs-Browser: https://salsa.debian.org/gnome-team/nautilus
-Vcs-Git: https://salsa.debian.org/gnome-team/nautilus.git
+Vcs-Git: https://salsa.debian.org/gnome-team/nautilus.git -b debian/buster
Standards-Version: 4.2.1
Package: nautilus
diff -Nru nautilus-3.30.5/debian/control.in nautilus-3.30.5/debian/control.in
--- nautilus-3.30.5/debian/control.in 2018-12-22 13:53:04.000000000 +0000
+++ nautilus-3.30.5/debian/control.in 2019-05-29 12:47:33.000000000 +0100
@@ -11,6 +11,7 @@
gobject-introspection (>= 0.9.12-4~),
gtk-doc-tools (>= 1.10),
libatk1.0-dev (>= 1.32.0),
+ libfontconfig1-dev,
libgail-3-dev,
libgexiv2-dev (>= 0.10.0),
libgirepository1.0-dev (>= 0.10.7-1~),
@@ -37,7 +38,7 @@
Rules-Requires-Root: no
Homepage: https://wiki.gnome.org/action/show/Apps/Nautilus
Vcs-Browser: https://salsa.debian.org/gnome-team/nautilus
-Vcs-Git: https://salsa.debian.org/gnome-team/nautilus.git
+Vcs-Git: https://salsa.debian.org/gnome-team/nautilus.git -b debian/buster
Standards-Version: 4.2.1
Package: nautilus
diff -Nru nautilus-3.30.5/debian/gbp.conf nautilus-3.30.5/debian/gbp.conf
--- nautilus-3.30.5/debian/gbp.conf 2018-12-22 13:53:04.000000000 +0000
+++ nautilus-3.30.5/debian/gbp.conf 2019-05-29 12:47:33.000000000 +0100
@@ -1,6 +1,6 @@
[DEFAULT]
pristine-tar = True
-debian-branch = debian/master
+debian-branch = debian/buster
upstream-branch = upstream/latest
upstream-vcs-tag = %(version)s
diff -Nru nautilus-3.30.5/debian/patches/Define-symbol-needed-for-gnome-desktop.patch nautilus-3.30.5/debian/patches/Define-symbol-needed-for-gnome-desktop.patch
--- nautilus-3.30.5/debian/patches/Define-symbol-needed-for-gnome-desktop.patch 1970-01-01 01:00:00.000000000 +0100
+++ nautilus-3.30.5/debian/patches/Define-symbol-needed-for-gnome-desktop.patch 2019-05-29 12:47:33.000000000 +0100
@@ -0,0 +1,47 @@
+From: Emmanuele Bassi <ebassi at gnome.org>
+Date: Sun, 14 Apr 2019 13:28:06 +0100
+Subject: Define symbol needed for gnome-desktop
+
+The copy-paste of libgnome-desktop's thumbnailing code is missing a
+symbol that is defined by the libgnome-desktop build, which breaks
+Nautilus's own build.
+
+Origin: upstream, commit:08c6d9e6cdd903ae67c496ffd7ae3de4619c6f40
+---
+ meson.build | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 996360a..3db1dca 100644
+--- a/meson.build
++++ b/meson.build
+@@ -137,6 +137,8 @@ tracker_sparql = dependency('tracker-sparql-2.0')
+ x11 = dependency('x11')
+ xml = dependency('libxml-2.0', version: '>= 2.7.8')
+
++fontconfig = dependency('fontconfig', required: false)
++
+ ####################
+ # End dependencies #
+ ####################
+@@ -159,6 +161,12 @@ endif
+
+ application_id = 'org.gnome.Nautilus' + profile
+
++if fontconfig.found()
++ fontconfig_cache_path = fontconfig.get_pkgconfig_variable('cachedir')
++else
++ fontconfig_cache_path = join_paths(libdir, 'fontconfig/cache')
++endif
++
+ conf.set_quoted('APPLICATION_ID', application_id)
+ conf.set_quoted('GETTEXT_PACKAGE', 'nautilus')
+ conf.set_quoted('INSTALL_PREFIX', prefix)
+@@ -169,6 +177,7 @@ conf.set_quoted('NAUTILUS_EXTENSIONDIR', join_paths(prefix, extensiondir))
+ conf.set_quoted('PACKAGE_VERSION', meson.project_version())
+ conf.set_quoted('PROFILE', profile)
+ conf.set_quoted('VERSION', '@0 at -@VCS_TAG@'.format(meson.project_version()))
++conf.set_quoted('FONTCONFIG_CACHE_PATH', fontconfig_cache_path)
+
+ ###################################################
+ # gnome-desktop macros for thumbnailer sandboxing #
diff -Nru nautilus-3.30.5/debian/patches/series nautilus-3.30.5/debian/patches/series
--- nautilus-3.30.5/debian/patches/series 2018-12-22 13:53:04.000000000 +0000
+++ nautilus-3.30.5/debian/patches/series 2019-05-29 12:47:33.000000000 +0100
@@ -1 +1,3 @@
multiarch_fallback.patch
+Update-gnome-desktop-code.patch
+Define-symbol-needed-for-gnome-desktop.patch
diff -Nru nautilus-3.30.5/debian/patches/Update-gnome-desktop-code.patch nautilus-3.30.5/debian/patches/Update-gnome-desktop-code.patch
--- nautilus-3.30.5/debian/patches/Update-gnome-desktop-code.patch 1970-01-01 01:00:00.000000000 +0100
+++ nautilus-3.30.5/debian/patches/Update-gnome-desktop-code.patch 2019-05-29 12:47:33.000000000 +0100
@@ -0,0 +1,124 @@
+From: Ernestas Kulik <ekulik at redhat.com>
+Date: Sun, 14 Apr 2019 10:44:32 +0200
+Subject: Update gnome-desktop code
+
+Nautilus contains a copy of this code, originating in gnome-desktop3.
+
+Fixes a potential crash during thumbnailing
+
+Fixes thumbnailer on 32-bit systems where /lib64 is not available. Also
+improve handling of usrmerged and non-usrmerged systems. (Related to LP:
+
+Fixes CVE-2019-11461
+
+Origin: upstream,commit:031b814d526895c612fae98ac75379e60469161b
+Applied-Upstream: 3.30.6
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=928054
+---
+ src/gnome-desktop/gnome-desktop-thumbnail-script.c | 60 ++++++++++++++++++++--
+ src/gnome-desktop/gnome-desktop-thumbnail.c | 2 +
+ 2 files changed, 57 insertions(+), 5 deletions(-)
+
+diff --git a/src/gnome-desktop/gnome-desktop-thumbnail-script.c b/src/gnome-desktop/gnome-desktop-thumbnail-script.c
+index 14e2fed..8e8b876 100644
+--- a/src/gnome-desktop/gnome-desktop-thumbnail-script.c
++++ b/src/gnome-desktop/gnome-desktop-thumbnail-script.c
+@@ -343,7 +343,7 @@ setup_seccomp (GPtrArray *argv_array,
+ {SCMP_SYS (clone), &SCMP_A0 (SCMP_CMP_MASKED_EQ, CLONE_NEWUSER, CLONE_NEWUSER)},
+
+ /* Don't allow faking input to the controlling tty (CVE-2017-5226) */
+- {SCMP_SYS (ioctl), &SCMP_A1(SCMP_CMP_EQ, (int)TIOCSTI)},
++ {SCMP_SYS (ioctl), &SCMP_A1(SCMP_CMP_MASKED_EQ, 0xFFFFFFFFu, (int)TIOCSTI)},
+ };
+
+ struct
+@@ -506,22 +506,72 @@ setup_seccomp (GPtrArray *argv_array,
+ #endif
+
+ #ifdef HAVE_BWRAP
++static gboolean
++path_is_usrmerged (const char *dir)
++{
++ /* does /dir point to /usr/dir? */
++ g_autofree char *target = NULL;
++ GStatBuf stat_buf_src, stat_buf_target;
++
++ if (g_stat (dir, &stat_buf_src) < 0)
++ return FALSE;
++
++ target = g_strdup_printf ("/usr/%s", dir);
++
++ if (g_stat (target, &stat_buf_target) < 0)
++ return FALSE;
++
++ return (stat_buf_src.st_dev == stat_buf_target.st_dev) &&
++ (stat_buf_src.st_ino == stat_buf_target.st_ino);
++}
++
+ static gboolean
+ add_bwrap (GPtrArray *array,
+ ScriptExec *script)
+ {
++ const char * const usrmerged_dirs[] = { "bin", "lib64", "lib", "sbin" };
++ int i;
++
+ g_return_val_if_fail (script->outdir != NULL, FALSE);
+ g_return_val_if_fail (script->s_infile != NULL, FALSE);
+
+ add_args (array,
+ "bwrap",
+ "--ro-bind", "/usr", "/usr",
+- "--ro-bind", "/lib", "/lib",
+- "--ro-bind", "/lib64", "/lib64",
++ "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
++ NULL);
++
++ /* These directories might be symlinks into /usr/... */
++ for (i = 0; i < G_N_ELEMENTS (usrmerged_dirs); i++)
++ {
++ g_autofree char *absolute_dir = g_strdup_printf ("/%s", usrmerged_dirs[i]);
++
++ if (!g_file_test (absolute_dir, G_FILE_TEST_EXISTS))
++ continue;
++
++ if (path_is_usrmerged (absolute_dir))
++ {
++ g_autofree char *symlink_target = g_strdup_printf ("/usr/%s", absolute_dir);
++
++ add_args (array,
++ "--symlink", symlink_target, absolute_dir,
++ NULL);
++ }
++ else
++ {
++ add_args (array,
++ "--ro-bind", absolute_dir, absolute_dir,
++ NULL);
++ }
++ }
++
++ /* fontconfig cache if necessary */
++ if (!g_str_has_prefix (FONTCONFIG_CACHE_PATH, "/usr/"))
++ add_args (array, "--ro-bind-try", FONTCONFIG_CACHE_PATH, FONTCONFIG_CACHE_PATH, NULL);
++
++ add_args (array,
+ "--proc", "/proc",
+ "--dev", "/dev",
+- "--symlink", "usr/bin", "/bin",
+- "--symlink", "usr/sbin", "/sbin",
+ "--chdir", "/",
+ "--setenv", "GIO_USE_VFS", "local",
+ "--unshare-all",
+diff --git a/src/gnome-desktop/gnome-desktop-thumbnail.c b/src/gnome-desktop/gnome-desktop-thumbnail.c
+index b31bad5..566fbeb 100644
+--- a/src/gnome-desktop/gnome-desktop-thumbnail.c
++++ b/src/gnome-desktop/gnome-desktop-thumbnail.c
+@@ -969,6 +969,8 @@ get_preview_thumbnail (const char *uri,
+
+ object = g_file_info_get_attribute_object (file_info,
+ G_FILE_ATTRIBUTE_PREVIEW_ICON);
++ if (object)
++ g_object_ref (object);
+ g_object_unref (file_info);
+
+ if (!object)
More information about the pkg-gnome-maintainers
mailing list