Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-1.9.git;a=commitdiff;h=ef225be9c5d5e94c272a7d92c4c5ba8334240e37
commit ef225be9c5d5e94c272a7d92c4c5ba8334240e37 Author: kikadf <[email protected]> Date: Thu Mar 13 09:00:44 2014 +0100 udisks-1.0.4-8arcturus1-x86_64 * Fix CVE-2014-0004 diff --git a/source/xapps/udisks/CVE-2014-0004.patch b/source/xapps/udisks/CVE-2014-0004.patch new file mode 100644 index 0000000..6b7483e --- /dev/null +++ b/source/xapps/udisks/CVE-2014-0004.patch @@ -0,0 +1,87 @@ +From ebf61ed8471a45cf8bce7231de00cb1bbc140708 Mon Sep 17 00:00:00 2001 +From: Martin Pitt <[email protected]> +Date: Wed, 5 Mar 2014 14:07:44 +0100 +Subject: [PATCH] Fix buffer overflow in mount path parsing + +In the mount monitor we parse mount points from /proc/self/mountinfo. 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 +--- + src/mount-monitor.c | 21 +++++++++++++++------ + 1 file changed, 15 insertions(+), 6 deletions(-) + +diff --git a/src/mount-monitor.c b/src/mount-monitor.c +index d541deb..573a69c 100644 +--- a/src/mount-monitor.c ++++ b/src/mount-monitor.c +@@ -39,6 +39,11 @@ + #include "mount.h" + #include "private.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" ++ + /*--------------------------------------------------------------------------------------------------------------*/ + + enum +@@ -320,8 +325,8 @@ mount_monitor_ensure (MountMonitor *monitor) + 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; + +@@ -329,7 +334,7 @@ mount_monitor_ensure (MountMonitor *monitor) + 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, +@@ -340,6 +345,8 @@ mount_monitor_ensure (MountMonitor *monitor) + g_warning ("Error parsing line '%s'", lines[n]); + continue; + } ++ encoded_root[sizeof encoded_root - 1] = '\0'; ++ encoded_mount_point[sizeof encoded_mount_point - 1] = '\0'; + + /* ignore mounts where only a subtree of a filesystem is mounted */ + if (g_strcmp0 (encoded_root, "/") != 0) +@@ -358,15 +365,17 @@ mount_monitor_ensure (MountMonitor *monitor) + 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) + { + g_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; +-- +1.9.0 + diff --git a/source/xapps/udisks/FrugalBuild b/source/xapps/udisks/FrugalBuild index 09df150..1e28208 100644 --- a/source/xapps/udisks/FrugalBuild +++ b/source/xapps/udisks/FrugalBuild @@ -1,9 +1,11 @@ # Compiling time: 0.07 SBU # Maintainer: bouleetbil <[email protected]> +options+=('asneeded') + pkgname=udisks pkgver=1.0.4 -pkgrel=7 +pkgrel=8arcturus1 pkgdesc="Storage Management Service" url="http://www.freedesktop.org/wiki/Software/udisks" depends=('dbus-glib' 'polkit' 'parted>=3.1-2' 'lvm2>=2.02.96' \ @@ -22,6 +24,12 @@ sha1sums=('10d2acfd6e6ff4c8d9d962af1fb1856a885e3219' \ '85121f859c0a13e744f34948826a26f6527f5388') replaces=('devicekit-disks') + +# FSA fix *** +source=(${source[@]} CVE-2014-0004.patch) +sha1sums=(${sha1sums[@]} '714572ee4083a64829fb96d5e070eb2088c89538') +# *********** + build() { Fbuild _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
