Hi all,

Attached to this email are the two libblockdev/udisks patches that we
sent to the linux-distros@openwall last week.

Thank you very much! We are at your disposal for questions, comments,
and further discussions.

With best regards,

-- 
the Qualys Security Advisory team
From 8e072f794744bd17c57cceabb3884d3f0f6a1602 Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.bl...@suse.com>
Date: Fri, 16 May 2025 14:27:10 +0200
Subject: [PATCH] dont allow suid and dev set on fs resize

---
 src/plugins/fs/generic.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/plugins/fs/generic.c b/src/plugins/fs/generic.c
index 69333944..1a6dd960 100644
--- a/src/plugins/fs/generic.c
+++ b/src/plugins/fs/generic.c
@@ -683,7 +683,9 @@ static gchar* fs_mount (const gchar *device, gchar *fstype, 
gboolean read_only,
                              "Failed to create temporary directory for 
mounting '%s'.", device);
                 return NULL;
             }
-            ret = bd_fs_mount (device, mountpoint, fstype, read_only ? "ro" : 
NULL, NULL, &l_error);
+
+            ret = bd_fs_mount (device, mountpoint, fstype, read_only ? 
"nosuid,nodev,ro" : "nosuid,nodev", NULL, &l_error);
+
             if (!ret) {
                 g_propagate_prefixed_error (error, l_error, "Failed to mount 
'%s': ", device);
                 g_rmdir (mountpoint);
-- 
2.48.1

From 0007d5616f4dbc9ccd65b9094ffc18c6f776d06a Mon Sep 17 00:00:00 2001
From: Tomas Bzatek <tbza...@redhat.com>
Date: Wed, 4 Jun 2025 15:26:46 +0200
Subject: [PATCH] udiskslinuxfilesystemhelpers: Mount private mounts with
 'nodev,nosuid'

The private mount done in take_filesystem_ownership() should always
default to 'nodev,nosuid' for security and 'errors=remount-ro' for
selected filesystem to handle corrupted filesystem. This is consistent
with mount options calculation for regular mounts.
---
 src/udiskslinuxfilesystemhelpers.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/udiskslinuxfilesystemhelpers.c 
b/src/udiskslinuxfilesystemhelpers.c
index 7c5fc037..9eb7742c 100644
--- a/src/udiskslinuxfilesystemhelpers.c
+++ b/src/udiskslinuxfilesystemhelpers.c
@@ -123,6 +123,7 @@ take_filesystem_ownership (const gchar  *device,
 
 {
   gchar *mountpoint = NULL;
+  const gchar *mount_opts;
   GError *local_error = NULL;
   gboolean unmount = FALSE;
   gboolean success = TRUE;
@@ -151,8 +152,15 @@ take_filesystem_ownership (const gchar  *device,
               goto out;
             }
 
+          mount_opts = "nodev,nosuid";
+          if (g_strcmp0 (fstype, "ext2") == 0 ||
+              g_strcmp0 (fstype, "ext3") == 0 ||
+              g_strcmp0 (fstype, "ext4") == 0 ||
+              g_strcmp0 (fstype, "jfs") == 0)
+            mount_opts = "nodev,nosuid,errors=remount-ro";
+
           /* TODO: mount to a private mount namespace */
-          if (!bd_fs_mount (device, mountpoint, fstype, NULL, NULL, 
&local_error))
+          if (!bd_fs_mount (device, mountpoint, fstype, mount_opts, NULL, 
&local_error))
             {
               g_set_error (error, UDISKS_ERROR, UDISKS_ERROR_FAILED,
                            "Cannot mount %s at %s: %s",
-- 
2.49.0

Reply via email to