Re: [PATCH 1/1] mm/madvise: replace ptrace attach requirement for process_madvise

3 messages, 2 authors, 2021-01-11 · open the first message on its own page

Re: [PATCH 1/1] mm/madvise: replace ptrace attach requirement for process_madvise

From: Florian Weimer <hidden>
Date: 2021-01-11 10:21:38

* Suren Baghdasaryan:
quoted hunk
diff --git a/mm/madvise.c b/mm/madvise.c
index 6a660858784b..c2d600386902 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -1197,12 +1197,22 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec,
 		goto release_task;
 	}
 
-	mm = mm_access(task, PTRACE_MODE_ATTACH_FSCREDS);
+	/* Require PTRACE_MODE_READ to avoid leaking ASLR metadata. */
+	mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
 	if (IS_ERR_OR_NULL(mm)) {
 		ret = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
 		goto release_task;
 	}
Shouldn't this depend on the requested behavior?  Several operations
directly result in observable changes, and go beyond performance tuning.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill

Re: [PATCH 1/1] mm/madvise: replace ptrace attach requirement for process_madvise

From: Suren Baghdasaryan <surenb@google.com>
Date: 2021-01-11 17:06:32

On Mon, Jan 11, 2021 at 2:20 AM Florian Weimer [off-list ref] wrote:
* Suren Baghdasaryan:
quoted
diff --git a/mm/madvise.c b/mm/madvise.c
index 6a660858784b..c2d600386902 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -1197,12 +1197,22 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec,
              goto release_task;
      }

-     mm = mm_access(task, PTRACE_MODE_ATTACH_FSCREDS);
+     /* Require PTRACE_MODE_READ to avoid leaking ASLR metadata. */
+     mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
      if (IS_ERR_OR_NULL(mm)) {
              ret = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
              goto release_task;
      }
Shouldn't this depend on the requested behavior?  Several operations
directly result in observable changes, and go beyond performance tuning.
Thanks for the comment Florian.
process_madvise supports only MADV_COLD and MADV_PAGEOUT hints which
are both non-destructive (see process_madvise_behavior_valid()
function). Maybe you meant something else by "observable changes", if
so please clarify.
Thanks,
Suren.
Thanks,
Florian
--
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill

--
To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.

Re: [PATCH 1/1] mm/madvise: replace ptrace attach requirement for process_madvise

From: Suren Baghdasaryan <surenb@google.com>
Date: 2021-01-11 17:10:24

On Mon, Jan 11, 2021 at 9:05 AM Suren Baghdasaryan [off-list ref] wrote:
On Mon, Jan 11, 2021 at 2:20 AM Florian Weimer [off-list ref] wrote:
quoted
* Suren Baghdasaryan:
quoted
diff --git a/mm/madvise.c b/mm/madvise.c
index 6a660858784b..c2d600386902 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -1197,12 +1197,22 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec,
              goto release_task;
      }

-     mm = mm_access(task, PTRACE_MODE_ATTACH_FSCREDS);
+     /* Require PTRACE_MODE_READ to avoid leaking ASLR metadata. */
+     mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
      if (IS_ERR_OR_NULL(mm)) {
              ret = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
              goto release_task;
      }
Shouldn't this depend on the requested behavior?  Several operations
directly result in observable changes, and go beyond performance tuning.
Thanks for the comment Florian.
process_madvise supports only MADV_COLD and MADV_PAGEOUT hints which
are both non-destructive (see process_madvise_behavior_valid()
function). Maybe you meant something else by "observable changes", if
so please clarify.
Thanks,
Suren.
V2 with Minchan's fix is posted at:
https://lore.kernel.org/lkml/20210111170622.2613577-1-surenb@google.com/T/#u
quoted
Thanks,
Florian
--
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill

--
To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help