Package: release.debian.org Severity: normal User: release.debian....@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 [ i...@orangesquash.org.uk ] Debian Developer [ la...@debian.org ] Ubuntu Developer [ la...@ubuntu.com ]
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 <la...@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 <eba...@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@-@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 <eku...@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)