All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/2] um: Protect memory mapped file
@ 2015-12-22 21:15 ` Mickaël Salaün
  0 siblings, 0 replies; 7+ messages in thread
From: Mickaël Salaün @ 2015-12-22 21:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mickaël Salaün, Jeff Dike, Richard Weinberger,
	Tristan Schmelcher, Greg Kroah-Hartman, user-mode-linux-devel,
	user-mode-linux-user

This series protect the memory mapped file. This apply on v4.4-rc6.

Changes since v4:
* fix spelling [1/2]

Changes since v3:
* add Tristan Schmelcher's ack

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.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v5 0/2] um: Protect memory mapped file
@ 2015-12-22 21:15 ` Mickaël Salaün
  0 siblings, 0 replies; 7+ messages in thread
From: Mickaël Salaün @ 2015-12-22 21:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mickaël Salaün, Jeff Dike, Richard Weinberger,
	Tristan Schmelcher, Greg Kroah-Hartman, user-mode-linux-devel,
	user-mode-linux-user

This series protect the memory mapped file. This apply on v4.4-rc6.

Changes since v4:
* fix spelling [1/2]

Changes since v3:
* add Tristan Schmelcher's ack

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.4

--
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/


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v5 1/2] um: Do not set unsecure permission for temporary file
  2015-12-22 21:15 ` Mickaël Salaün
@ 2015-12-22 21:15   ` Mickaël Salaün
  -1 siblings, 0 replies; 7+ messages in thread
From: Mickaël Salaün @ 2015-12-22 21:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mickaël Salaün, Jeff Dike, Richard Weinberger,
	Tristan Schmelcher, Greg Kroah-Hartman, user-mode-linux-devel,
	user-mode-linux-user

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 depends 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>
Acked-by: 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 897e9ad0c108..840d573f7e38 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.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v5 1/2] um: Do not set unsecure permission for temporary file
@ 2015-12-22 21:15   ` Mickaël Salaün
  0 siblings, 0 replies; 7+ messages in thread
From: Mickaël Salaün @ 2015-12-22 21:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mickaël Salaün, Jeff Dike, Richard Weinberger,
	Tristan Schmelcher, Greg Kroah-Hartman, user-mode-linux-devel,
	user-mode-linux-user

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 depends 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>
Acked-by: 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 897e9ad0c108..840d573f7e38 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.4

--
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/


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v5 2/2] um: Use race-free temporary file creation
  2015-12-22 21:15 ` Mickaël Salaün
@ 2015-12-22 21:15   ` Mickaël Salaün
  -1 siblings, 0 replies; 7+ messages in thread
From: Mickaël Salaün @ 2015-12-22 21:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mickaël Salaün, Jeff Dike, Richard Weinberger,
	Tristan Schmelcher, Greg Kroah-Hartman, user-mode-linux-devel,
	user-mode-linux-user

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 840d573f7e38..8b1767668515 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.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v5 2/2] um: Use race-free temporary file creation
@ 2015-12-22 21:15   ` Mickaël Salaün
  0 siblings, 0 replies; 7+ messages in thread
From: Mickaël Salaün @ 2015-12-22 21:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mickaël Salaün, Jeff Dike, Richard Weinberger,
	Tristan Schmelcher, Greg Kroah-Hartman, user-mode-linux-devel,
	user-mode-linux-user

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 840d573f7e38..8b1767668515 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.4

--
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/


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v5 0/2] um: Protect memory mapped file
  2015-12-22 21:15 ` Mickaël Salaün
                   ` (2 preceding siblings ...)
  (?)
@ 2016-01-10 20:22 ` Richard Weinberger
  -1 siblings, 0 replies; 7+ messages in thread
From: Richard Weinberger @ 2016-01-10 20:22 UTC (permalink / raw)
  To: Mickaël Salaün, linux-kernel
  Cc: Jeff Dike, Tristan Schmelcher, Greg Kroah-Hartman,
	user-mode-linux-devel, user-mode-linux-user

Am 22.12.2015 um 22:15 schrieb Mickaël Salaün:
> This series protect the memory mapped file. This apply on v4.4-rc6.
> 
> Changes since v4:
> * fix spelling [1/2]
> 
> Changes since v3:
> * add Tristan Schmelcher's ack
> 
> 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

Applied!

Thanks,
//richard

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-01-10 20:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-22 21:15 [PATCH v5 0/2] um: Protect memory mapped file Mickaël Salaün
2015-12-22 21:15 ` Mickaël Salaün
2015-12-22 21:15 ` [PATCH v5 1/2] um: Do not set unsecure permission for temporary file Mickaël Salaün
2015-12-22 21:15   ` Mickaël Salaün
2015-12-22 21:15 ` [PATCH v5 2/2] um: Use race-free temporary file creation Mickaël Salaün
2015-12-22 21:15   ` Mickaël Salaün
2016-01-10 20:22 ` [PATCH v5 0/2] um: Protect memory mapped file Richard Weinberger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.