Hello community, here is the log from the commit of package udisks2.2636 for openSUSE:12.3:Update checked in at 2014-03-18 09:02:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.3:Update/udisks2.2636 (Old) and /work/SRC/openSUSE:12.3:Update/.udisks2.2636.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udisks2.2636" Changes: -------- New Changes file: --- /dev/null 2014-02-13 01:09:38.344032506 +0100 +++ /work/SRC/openSUSE:12.3:Update/.udisks2.2636.new/udisks2.changes 2014-03-18 09:02:56.000000000 +0100 @@ -0,0 +1,221 @@ +------------------------------------------------------------------- +Mon Mar 10 12:48:04 UTC 2014 - [email protected] + +- udisks2_local_code_execution_fix_CVE-2014-0004.patch: + Fix buffer overflow in mount path parsing. If users have + the possibility to create very long mount points, such as with + FUSE, they could cause udisksd to crash, or even to run arbitrary + code as root with specially crafted mount paths. + (bnc#865854, CVE-2014-0004) + +------------------------------------------------------------------- +Sun Mar 17 11:13:06 UTC 2013 - [email protected] + +- udisks2-UDISKS_FILESYSTEM_SHARED.patch - backport 6ae6c19ad981801d08f3f5b59c0301ed3fe8b7b4 + * provide a way to use /media to mount devices by setting + UDISKS_FILESYSTEM_SHARED=1 device property (bnc#809837) + +------------------------------------------------------------------- +Thu Jan 17 07:36:09 UTC 2013 - [email protected] + +- Really apply fix_polkit_action_name.diff. + +------------------------------------------------------------------- +Mon Jan 07 13:30:34 UTC 2013 - [email protected] + +- Fix name of polkit action (fdo#58629): + modify-device-system-other-seat -> modify-device-other-seat + +------------------------------------------------------------------- +Sun Jan 6 21:02:27 UTC 2013 - [email protected] + +- Add gptfdisk Requires: sgdisk is called by udisksd to modify the + partition tables (bnc#796853). + +------------------------------------------------------------------- +Mon Nov 12 22:22:01 UTC 2012 - [email protected] + +- Update to version 2.0.0 + + configure.ac: raise gudev dependency + + Add --disable-man configure option + + Update list of recovery/system partitions + + Add support for creating exFAT filesystems and changing exFAT + labels + + Add textual descriptions for IMSM Raid members + + Use all-caps for RAID + + Only do the isohybrid hack for the first partition + + Don't complain about missing /etc/crypttab file + + Don't complain about missing /etc/fstab file + + Make it work without requiring the kernel to be CONFIG_SWAP=y + + Mention the right file when complaing about /proc/swaps + + Fix glaringly wrong documentation for Filesystem.Mount() + + Move bash completion script into + /usr/share/bash-completion/completions + + Don't require that users define UDISKS_API_IS_SUBJECT_TO_CHANGE + + Remove udisks_daemon_util_on_other_seat() from sections.txt + + Add workaround annotation for + udisks_client_get_block_for_dev() + + Enable large file support + + Various doc and tests fixes + + Bugs fixed: fdo#51063. + + Updated translations. +- Drop systemd-dynamic-check.diff: fixed upstream. +- Dropped gnome-common BuildRequires and call to gnome-autogen.sh, + as the patch which needed that is dropped. + +------------------------------------------------------------------- +Wed Oct 24 12:16:42 UTC 2012 - [email protected] + +- remove the rpmlintrc after adding the privs bnc#779404 + +------------------------------------------------------------------- +Wed Oct 17 13:03:06 UTC 2012 - [email protected] + +- Fix build with new udev rules directory location. + +------------------------------------------------------------------- +Tue Sep 25 09:19:57 UTC 2012 - [email protected] + +- Update to version 1.99.0: + + Catch up with latest polkit guidance + + Don't require auth for Standby'ing non-system drives on own + seat + + Mark Realtek rts5229 based card readers as flash drives + + Black-list seemingly invalid WWN for SAMSUNG SP1604N hard disks + + Ignore non-Linux software on SanDisk Cruzer + + Add drive configuration interfaces and configuration files + + Add "Linux Filesystem" GPT partition type + + Add support for VMWare filesystem types and GPT partition types + + Update integration tests. + + Bugs fixed: + - fdo#51439: udisks should hide lvm PVs +- Changes from version 1.98.0: + + Drive: Refuse to eject drives that appear to be in use + + udisksd: work if polkitd is not available + + Updated documentations + + Bugs fixed: + - fdo49842: Unhandled rootfs on bind mount +- Drop udisks-hide-lvm-raid-partitions.patch: fixed upstream. + +------------------------------------------------------------------- +Tue Sep 25 09:14:34 UTC 2012 - [email protected] + +- Update systemd-dynamic-check.diff with patch sent upstream. +- Add gnome-common BuildRequires and call to gnome-autogen.sh, as + needed by the patch now. + +------------------------------------------------------------------- +Tue Jul 3 15:39:33 CEST 2012 - [email protected] + +- Add systemd-dynamic-check.diff: add a check of running systemd + (bnc#769570) + +------------------------------------------------------------------- +Tue Jun 26 18:18:09 UTC 2012 - [email protected] + +- Added udisks-hide-lvm-raid-partitions.patch in order to hide + partitions marked as containing LVM and RAID. This is only useful + for encrypted partitions (fixes fdo#51439 and bnc#737038). + +------------------------------------------------------------------- +Fri May 11 14:51:00 UTC 2012 - [email protected] + +- Update to version 1.97.0: + + Several improvements for loop devices + + Also check for "target is busy" when checking umount(8) output + + UDisksCleanup: Remove stale entries when adding new ones + + Add work-around to show FS on CDs/USB sticks created using + isohybrid + + Several code improvements + + Update path to mounted-fs file in documentation +- Changes from version 1.96.0: + + Actually link with libsystemd-login +- Changes from version 1.95.0: + + Add multi-seat support + + Add versioning macros + + Use libacl library instead of setfacl(1) + + Work around missing serial/wwn on VMware hard disks + + Add separate polkit actions for ejecting media + + Make $(udisks2.device) in authentication messages include the + vendor/model + + Remove unused .filesystem-unmount-others-shared polkit action + + Documentation fixes and improvements + + Updated translations +- Add libacl-devel BuildRequires: it's now really used. + +------------------------------------------------------------------- +Wed Apr 11 09:33:59 UTC 2012 - [email protected] + +- Update to version 1.94.0: + + Pass --readonly to cryptsetup(8) if device to unlock is + read-only + + Add udev rules for identifying devices which should not be + shown + + Fix unmounting large disks when not asked to + + Make escaping work properly with non-ASCII UTF-8 strings + + Change some D-Bus types from bytestring ('ay') to UTF8 ('s') + + Convert some g_warning() uses to udisks_warning() + + Improved documentation. + +------------------------------------------------------------------- +Tue Mar 6 09:00:40 UTC 2012 - [email protected] + +- Update to version 1.93.0: + + Force MediaRemovable to TRUE for e.g. SD cards using the mmc + layer + + Ensure that whatever we pass as -t to mount(8) is in a + whitelist + + Ensure that the loop file name we pass to the kernel is always + NUL-terminated + + Properly escape all device files + + Improved documentation. +- Remove libacl-devel BuildRequires: not needed anymore. + +------------------------------------------------------------------- +Mon Feb 27 12:57:10 UTC 2012 - [email protected] + +- Update to version 1.92.0: + + client: Fix bit shifts of flags on 32 bit + + Avoid using $XDG_RUNTIME_DIR/media for now + + Don't free object twice when deleting a loop device + + Use /run/media/$USER for mounting + + Move to /usr-only setup and get rid of hardcoded paths to /lib + and sbin +- Changes from version 1.91.0: + + Install a systemd service file if systemd is used + + Ensure PATH is set + + Fix use of memset(3) + + Use org.freedesktop.UDisks2.* for errors, not + org.freedesktop.UDisks.* + + For mount options, switch from comment=udisks to x-udisks + + Prefer mounting in /run/user/$USER/media instead of /media + + With /media and /run on tmfs, switch to temporary store for + mounted-fs + + Make sure that Drive:SortKey sorts e.g. sdz before sdaa + + Do coldplug for block devices twice + + Use g_dbus_interface_dup_object() and check return value + + Shut up valgrind complaing about LOOP_GET_STATUS64 ioctl ++++ 24 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:12.3:Update/.udisks2.2636.new/udisks2.changes New: ---- fix_polkit_action_name.diff udisks-2.0.0.tar.bz2 udisks2-UDISKS_FILESYSTEM_SHARED.patch udisks2.changes udisks2.spec udisks2_local_code_execution_fix_CVE-2014-0004.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ udisks2.spec ++++++ # # spec file for package udisks2 # # Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d Name: udisks2 %define _name udisks Version: 2.0.0 Release: 0 Summary: Disk Management Service, version 2 License: GPL-2.0+ Group: System/Daemons Url: http://www.freedesktop.org/wiki/Software/udisks Source: http://udisks.freedesktop.org/releases/%{_name}-%{version}.tar.bz2 # PATCH-FIX-UPSTREAM fix_polkit_action_name.diff [fdo#58629] Patch0: fix_polkit_action_name.diff # PATCH-FIX-UPSTREAM Introduce UDISKS_FILESYSTEM_SHARED=1 to use /media [bnc#809837] Patch1: udisks2-UDISKS_FILESYSTEM_SHARED.patch # PATCH-FIX-UPSTREAM udisks2_local_code_execution_fix_CVE-2014-0004.patch bnc#865854 CVE-2014-0004 [email protected] -- Fix buffer overflow in mount path parsing Patch2: udisks2_local_code_execution_fix_CVE-2014-0004.patch # Needed to build the man pages BuildRequires: docbook-xsl-stylesheets BuildRequires: gobject-introspection-devel BuildRequires: intltool BuildRequires: libacl-devel # For xsltproc BuildRequires: xsltproc BuildRequires: pkgconfig(gio-unix-2.0) >= 2.31.13 BuildRequires: pkgconfig(glib-2.0) >= 2.31.13 BuildRequires: pkgconfig(gudev-1.0) >= 165 BuildRequires: pkgconfig(libatasmart) >= 0.17 BuildRequires: pkgconfig(libsystemd-login) >= 44 BuildRequires: pkgconfig(polkit-agent-1) >= 0.92 BuildRequires: pkgconfig(polkit-gobject-1) >= 0.92 BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(udev) # sgdisk is called by udisksd to modify the partition tables... thus a needed tool. Requires: gptfdisk Recommends: %{name}-lang BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. %description udisks provides a daemon, D-Bus API and command line tools for managing disks and storage devices. %package -n libudisks2-0 Summary: UDisks Client Library, version 2 License: LGPL-2.0+ Group: System/Libraries Recommends: %{name} = %{version} %description -n libudisks2-0 udisks provides a daemon, D-Bus API and command line tools for managing disks and storage devices. %package -n typelib-1_0-UDisks-2_0 Summary: UDisks Client Library, version 2 -- Introspection bindings License: LGPL-2.0+ Group: System/Libraries %description -n typelib-1_0-UDisks-2_0 udisks provides a daemon, D-Bus API and command line tools for managing disks and storage devices. This package provides the GObject Introspection bindings for the UDisks client library. %package devel Summary: Disk Management Service, version 2 -- Development Files License: LGPL-2.0+ Group: Development/Libraries/C and C++ Requires: libudisks2-0 = %{version} %description devel udisks provides a daemon, D-Bus API and command line tools for managing disks and storage devices. %lang_package %prep %setup -q -n %{_name}-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %build export V=1 %configure \ --disable-static make %{?_smp_mflags} %install %make_install find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print %find_lang %{name} %pre %service_add_pre udisks2.service %post %service_add_post udisks2.service %preun %service_del_preun udisks2.service %postun %service_del_postun udisks2.service %post -n libudisks2-0 -p /sbin/ldconfig %postun -n libudisks2-0 -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc AUTHORS COPYING NEWS README %{_unitdir}/udisks2.service %{_udevrulesdir}/80-udisks2.rules %{_sbindir}/umount.udisks2 %{_bindir}/udisksctl %dir %{_libexecdir}/udisks2 %{_libexecdir}/udisks2/udisksd %{_datadir}/bash-completion/completions/udisksctl %{_sysconfdir}/dbus-1/system.d/org.freedesktop.UDisks2.conf %{_datadir}/dbus-1/system-services/org.freedesktop.UDisks2.service %{_datadir}/polkit-1/actions/org.freedesktop.udisks2.policy %{_mandir}/man1/udisksctl.1%{?ext_man} %{_mandir}/man8/udisks.8%{?ext_man} %{_mandir}/man8/udisksd.8%{?ext_man} %attr(0770,root,root) %dir %{_localstatedir}/lib/udisks2 %files -n libudisks2-0 %defattr(-,root,root,-) %doc AUTHORS COPYING NEWS README %{_libdir}/libudisks2.so.* %files -n typelib-1_0-UDisks-2_0 %defattr(-,root,root,-) %{_libdir}/girepository-1.0/UDisks-2.0.typelib %files devel %defattr(-,root,root,-) %{_includedir}/udisks2/ %{_libdir}/libudisks2.so %{_libdir}/pkgconfig/udisks2.pc %{_datadir}/gir-1.0/UDisks-2.0.gir %doc %{_datadir}/gtk-doc/html/udisks2/ %files lang -f %{name}.lang %changelog ++++++ fix_polkit_action_name.diff ++++++ diff --git a/src/udiskslinuxpartition.c b/src/udiskslinuxpartition.c index 9582346..e3ae93f 100644 --- a/src/udiskslinuxpartition.c +++ b/src/udiskslinuxpartition.c @@ -269,7 +269,7 @@ handle_set_flags (UDisksPartition *partition, } else if (!udisks_daemon_util_on_same_seat (daemon, object, caller_pid)) { - action_id = "org.freedesktop.udisks2.modify-device-system-other-seat"; + action_id = "org.freedesktop.udisks2.modify-device-other-seat"; } if (!udisks_daemon_util_check_authorization_sync (daemon, @@ -414,7 +414,7 @@ handle_set_name (UDisksPartition *partition, } else if (!udisks_daemon_util_on_same_seat (daemon, object, caller_pid)) { - action_id = "org.freedesktop.udisks2.modify-device-system-other-seat"; + action_id = "org.freedesktop.udisks2.modify-device-other-seat"; } if (!udisks_daemon_util_check_authorization_sync (daemon, @@ -596,7 +596,7 @@ handle_set_type (UDisksPartition *partition, } else if (!udisks_daemon_util_on_same_seat (daemon, object, caller_pid)) { - action_id = "org.freedesktop.udisks2.modify-device-system-other-seat"; + action_id = "org.freedesktop.udisks2.modify-device-other-seat"; } if (!udisks_daemon_util_check_authorization_sync (daemon, @@ -769,7 +769,7 @@ handle_delete (UDisksPartition *partition, } else if (!udisks_daemon_util_on_same_seat (daemon, object, caller_pid)) { - action_id = "org.freedesktop.udisks2.modify-device-system-other-seat"; + action_id = "org.freedesktop.udisks2.modify-device-other-seat"; } if (!udisks_daemon_util_check_authorization_sync (daemon, diff --git a/src/udiskslinuxpartitiontable.c b/src/udiskslinuxpartitiontable.c index 8f0d3d9..b553625 100644 --- a/src/udiskslinuxpartitiontable.c +++ b/src/udiskslinuxpartitiontable.c @@ -336,7 +336,7 @@ handle_create_partition (UDisksPartitionTable *table, } else if (!udisks_daemon_util_on_same_seat (daemon, object, caller_pid)) { - action_id = "org.freedesktop.udisks2.modify-device-system-other-seat"; + action_id = "org.freedesktop.udisks2.modify-device-other-seat"; } if (!udisks_daemon_util_check_authorization_sync (daemon, ++++++ udisks2-UDISKS_FILESYSTEM_SHARED.patch ++++++ commit 6ae6c19ad981801d08f3f5b59c0301ed3fe8b7b4 Author: David Zeuthen <[email protected]> Date: Sun Feb 17 14:49:21 2013 -0800 Introduce UDISKS_FILESYSTEM_SHARED=1 to use /media for mounting A lot of haters been complaining about /run/media/$USER and there are a couple of setups where it's awkward to use /etc/fstab entries and just easier to write a short udev rule. Signed-off-by: David Zeuthen <[email protected]> Index: udisks-2.0.0/doc/man/udisks.xml =================================================================== --- udisks-2.0.0.orig/doc/man/udisks.xml +++ udisks-2.0.0/doc/man/udisks.xml @@ -218,6 +218,14 @@ </listitem> </varlistentry> <varlistentry> + <term><option>UDISKS_FILESYSTEM_SHARED</option></term> + <listitem> + <para> + If set to 1, the filesystem on the device will be mounted in a shared directory (e.g. <filename class='directory'>/media/VolumeName</filename>) instead of a private directory (e.g. <filename class='directory'>/run/media/$USER/VolumeName</filename>) when the <link linkend="gdbus-method-org-freedesktop-UDisks2-Filesystem.Mount">Filesystem.Mount()</link> method is handled. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><option>ID_SEAT</option></term> <listitem> <para> Index: udisks-2.0.0/src/udiskslinuxfilesystem.c =================================================================== --- udisks-2.0.0.orig/src/udiskslinuxfilesystem.c +++ udisks-2.0.0/src/udiskslinuxfilesystem.c @@ -840,6 +840,8 @@ calculate_mount_point (UDisksDaemon const gchar *fs_type, GError **error) { + UDisksLinuxBlockObject *object = NULL; + gboolean fs_shared = FALSE; const gchar *label = NULL; const gchar *uuid = NULL; gchar *escaped_user_name = NULL; @@ -858,10 +860,22 @@ calculate_mount_point (UDisksDaemon uuid = udisks_block_get_id_uuid (block); } + object = udisks_daemon_util_dup_object (block, NULL); + if (object != NULL) + { + GUdevDevice *device = udisks_linux_block_object_get_device (UDISKS_LINUX_BLOCK_OBJECT (object)); + if (device != NULL) + { + /* TODO: maybe introduce Block:HintFilesystemShared instead of pulling it directly from the udev device */ + fs_shared = g_udev_device_get_property_as_boolean (device, "UDISKS_FILESYSTEM_SHARED"); + g_object_unref (device); + } + } + /* If we know the user-name and it doesn't have any '/' character in * it, mount in /run/media/$USER */ - if (user_name != NULL && strstr (user_name, "/") == NULL) + if (!fs_shared && (user_name != NULL && strstr (user_name, "/") == NULL)) { mount_dir = g_strdup_printf ("/run/media/%s", user_name); if (!g_file_test (mount_dir, G_FILE_TEST_EXISTS)) @@ -962,6 +976,7 @@ calculate_mount_point (UDisksDaemon g_free (mount_dir); out: + g_clear_object (&object); g_free (escaped_user_name); return mount_point; } ++++++ udisks2_local_code_execution_fix_CVE-2014-0004.patch ++++++ commit 24496747b648d1a7bd0d6da1ef3759f035ba1cd6 Author: Martin Pitt <[email protected]> Date: Wed Mar 5 13:47:15 2014 +0100 Fix buffer overflow in mount path parsing In the mount monitor we parse mount points from /proc/self/mountinfo and /proc/swaps. Ensure that we don't overflow the buffers on platforms where mount paths could be longer than PATH_MAX (unknown if that can actually happen), as at least the mount paths for hotpluggable devices are somewhat user-controlled. Thanks to Florian Weimer for discovering this bug, and to David Zeuthen for his initial patch! CVE-2014-0004 Index: udisks-2.0.0/src/udisksmountmonitor.c =================================================================== --- udisks-2.0.0.orig/src/udisksmountmonitor.c 2012-09-27 19:16:26.000000000 +0200 +++ udisks-2.0.0/src/udisksmountmonitor.c 2014-03-10 13:46:50.621437932 +0100 @@ -38,6 +38,11 @@ #include "udisksmount.h" #include "udisksprivate.h" +/* build a %Ns format string macro with N == PATH_MAX */ +#define xstr(s) str(s) +#define str(s) #s +#define PATH_MAX_FMT "%" xstr(PATH_MAX) "s" + /** * SECTION:udisksmountmonitor * @title: UDisksMountMonitor @@ -416,8 +421,8 @@ udisks_mount_monitor_get_mountinfo (UDis guint mount_id; guint parent_id; guint major, minor; - gchar encoded_root[PATH_MAX]; - gchar encoded_mount_point[PATH_MAX]; + gchar encoded_root[PATH_MAX + 1]; + gchar encoded_mount_point[PATH_MAX + 1]; gchar *mount_point; dev_t dev; @@ -425,7 +430,7 @@ udisks_mount_monitor_get_mountinfo (UDis continue; if (sscanf (lines[n], - "%d %d %d:%d %s %s", + "%d %d %d:%d " PATH_MAX_FMT " " PATH_MAX_FMT, &mount_id, &parent_id, &major, @@ -436,6 +441,8 @@ udisks_mount_monitor_get_mountinfo (UDis udisks_warning ("Error parsing line '%s'", lines[n]); continue; } + encoded_root[sizeof encoded_root - 1] = '\0'; + encoded_mount_point[sizeof encoded_mount_point - 1] = '\0'; /* Temporary work-around for btrfs, see * @@ -450,15 +457,17 @@ udisks_mount_monitor_get_mountinfo (UDis sep = strstr (lines[n], " - "); if (sep != NULL) { - gchar fstype[PATH_MAX]; - gchar mount_source[PATH_MAX]; + gchar fstype[PATH_MAX + 1]; + gchar mount_source[PATH_MAX + 1]; struct stat statbuf; - if (sscanf (sep + 3, "%s %s", fstype, mount_source) != 2) + if (sscanf (sep + 3, PATH_MAX_FMT " " PATH_MAX_FMT, fstype, mount_source) != 2) { udisks_warning ("Error parsing things past - for '%s'", lines[n]); continue; } + fstype[sizeof fstype - 1] = '\0'; + mount_source[sizeof mount_source - 1] = '\0'; if (g_strcmp0 (fstype, "btrfs") != 0) continue; @@ -546,7 +555,7 @@ udisks_mount_monitor_get_swaps (UDisksMo lines = g_strsplit (contents, "\n", 0); for (n = 0; lines[n] != NULL; n++) { - gchar filename[PATH_MAX]; + gchar filename[PATH_MAX + 1]; struct stat statbuf; dev_t dev; @@ -557,11 +566,12 @@ udisks_mount_monitor_get_swaps (UDisksMo if (strlen (lines[n]) == 0) continue; - if (sscanf (lines[n], "%s", filename) != 1) + if (sscanf (lines[n], PATH_MAX_FMT, filename) != 1) { udisks_warning ("Error parsing line '%s'", lines[n]); continue; } + filename[sizeof filename - 1] = '\0'; if (stat (filename, &statbuf) != 0) { -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
