Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1288075 > unrolled thread

[PATCH v3 0/2] um: Protect memory mapped file

Started byMickaël Salaün <mic@digikod.net>
First post2015-12-10 01:30 +0100
Last post2015-12-10 02:30 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/2] um: Protect memory mapped file Mickaël Salaün <mic@digikod.net> - 2015-12-10 01:30 +0100
    [PATCH v3 1/2] um: Do not set unsecure permission for temporary file Mickaël Salaün <mic@digikod.net> - 2015-12-10 01:30 +0100
      Re: [PATCH v3 1/2] um: Do not set unsecure permission for temporary file Tristan Schmelcher <tschmelcher@google.com> - 2015-12-11 20:30 +0100
    [PATCH v3 2/2] um: Use race-free temporary file creation Mickaël Salaün <mic@digikod.net> - 2015-12-10 02:30 +0100

#1288075 — [PATCH v3 0/2] um: Protect memory mapped file

FromMickaël Salaün <mic@digikod.net>
Date2015-12-10 01:30 +0100
Subject[PATCH v3 0/2] um: Protect memory mapped file
Message-ID<qDXho-76y-5@gated-at.bofh.it>
This series protect the memory mapped file.

Changes since v2; addressed Tristan Schmelcher's comment:
* remove the whole fchmod call [1/2]

Changes since v1; addressed Richard Weinberger's comments:
* add attacker model to the patch description [1/2]
* remove errno reset [2/2]

Regards,
 Mickaël

Mickaël Salaün (2):
  um: Do not set unsecure permission for temporary file
  um: Use race-free temporary file creation

 arch/um/os-Linux/mem.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1288076 — [PATCH v3 1/2] um: Do not set unsecure permission for temporary file

FromMickaël Salaün <mic@digikod.net>
Date2015-12-10 01:30 +0100
Subject[PATCH v3 1/2] um: Do not set unsecure permission for temporary file
Message-ID<qDXho-76y-3@gated-at.bofh.it>
In reply to#1288075
Remove the insecure 0777 mode for temporary file to prohibit other users
to change the executable mapped code.

An attacker could gain access to the mapped file descriptor from the
temporary file (before it is unlinked) in a read-only mode but it should
not be accessible in write mode to avoid arbitrary code execution.

To not change the hostfs behavior, the temporary file creation
permission now depend on the current umask(2) and the implementation of
mkstemp(3).

Signed-off-by: Mickaël Salaün <mic@digikod.net>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Tristan Schmelcher <tschmelcher@google.com>
---
 arch/um/os-Linux/mem.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c
index 897e9ad..840d573 100644
--- a/arch/um/os-Linux/mem.c
+++ b/arch/um/os-Linux/mem.c
@@ -142,12 +142,6 @@ static int __init create_tmp_file(unsigned long long len)
 	if (fd < 0)
 		exit(1);
 
-	err = fchmod(fd, 0777);
-	if (err < 0) {
-		perror("fchmod");
-		exit(1);
-	}
-
 	/*
 	 * Seek to len - 1 because writing a character there will
 	 * increase the file size by one byte, to the desired length.
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1289844 — Re: [PATCH v3 1/2] um: Do not set unsecure permission for temporary file

FromTristan Schmelcher <tschmelcher@google.com>
Date2015-12-11 20:30 +0100
SubjectRe: [PATCH v3 1/2] um: Do not set unsecure permission for temporary file
Message-ID<qEBya-ej-13@gated-at.bofh.it>
In reply to#1288076
Acked-by: Tristan Schmelcher <tschmelcher@google.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1288106 — [PATCH v3 2/2] um: Use race-free temporary file creation

FromMickaël Salaün <mic@digikod.net>
Date2015-12-10 02:30 +0100
Subject[PATCH v3 2/2] um: Use race-free temporary file creation
Message-ID<qDYds-7Hg-7@gated-at.bofh.it>
In reply to#1288075
Open the memory mapped file with the O_TMPFILE flag when available.

Signed-off-by: Mickaël Salaün <mic@digikod.net>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Richard Weinberger <richard@nod.at>
Acked-by: Tristan Schmelcher <tschmelcher@google.com>
---
 arch/um/os-Linux/mem.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c
index 840d573..8b17676 100644
--- a/arch/um/os-Linux/mem.c
+++ b/arch/um/os-Linux/mem.c
@@ -106,6 +106,17 @@ static int __init make_tempfile(const char *template)
 		}
 	}
 
+#ifdef O_TMPFILE
+	fd = open(tempdir, O_CLOEXEC | O_RDWR | O_EXCL | O_TMPFILE, 0700);
+	/*
+	 * If the running system does not support O_TMPFILE flag then retry
+	 * without it.
+	 */
+	if (fd != -1 || (errno != EINVAL && errno != EISDIR &&
+			errno != EOPNOTSUPP))
+		return fd;
+#endif
+
 	tempname = malloc(strlen(tempdir) + strlen(template) + 1);
 	if (tempname == NULL)
 		return -1;
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web