2022-10-03 22:46:36

by Seth Jenkins

[permalink] [raw]
Subject: [PATCH] mm: /proc/pid/smaps_rollup: fix no vma's null-deref

From: Seth Jenkins <[email protected]>

Commit 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value
seq_file") introduced a null-deref if there are no vma's in the task in
show_smaps_rollup.

Fixes: 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value seq_file")
Cc: [email protected]
Signed-off-by: Seth Jenkins <[email protected]>
---
fs/proc/task_mmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 4e0023643f8b..1e7bbc0873a4 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -969,7 +969,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v)
vma = vma->vm_next;
}

- show_vma_header_prefix(m, priv->mm->mmap->vm_start,
+ show_vma_header_prefix(m, priv->mm->mmap ? priv->mm->mmap->vm_start : 0,
last_vma_end, 0, 0, 0, 0);
seq_pad(m, ' ');
seq_puts(m, "[rollup]\n");
--
2.38.0.rc1.362.ged0d419d3c-goog


2022-10-04 13:14:16

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] mm: /proc/pid/smaps_rollup: fix no vma's null-deref

On Mon, Oct 03, 2022 at 06:45:31PM -0400, FirstName LastName wrote:
> From: Seth Jenkins <[email protected]>
>
> Commit 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value
> seq_file") introduced a null-deref if there are no vma's in the task in
> show_smaps_rollup.
>
> Fixes: 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value seq_file")
> Cc: [email protected]
> Signed-off-by: Seth Jenkins <[email protected]>

> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -969,7 +969,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v)
> vma = vma->vm_next;
> }
>
> - show_vma_header_prefix(m, priv->mm->mmap->vm_start,
> + show_vma_header_prefix(m, priv->mm->mmap ? priv->mm->mmap->vm_start : 0,
> last_vma_end, 0, 0, 0, 0);
> seq_pad(m, ' ');
> seq_puts(m, "[rollup]\n");

Reviewed-by: Alexey Dobriyan <[email protected]>
Tested-by: Alexey Dobriyan <[email protected]>

Now I know how to create stable process without address space.

2022-10-04 19:10:05

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] mm: /proc/pid/smaps_rollup: fix no vma's null-deref

On Mon, 3 Oct 2022 18:45:31 -0400 FirstName LastName <[email protected]> wrote:

> From: Seth Jenkins <[email protected]>
>
> Commit 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value
> seq_file") introduced a null-deref if there are no vma's in the task in
> show_smaps_rollup.
>
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -969,7 +969,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v)
> vma = vma->vm_next;
> }
>
> - show_vma_header_prefix(m, priv->mm->mmap->vm_start,
> + show_vma_header_prefix(m, priv->mm->mmap ? priv->mm->mmap->vm_start : 0,
> last_vma_end, 0, 0, 0, 0);
> seq_pad(m, ' ');
> seq_puts(m, "[rollup]\n");

The current mm tree is very different here. In fact the bug might not
exist any more. Please take a look at the mm-stable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm?

If no fixes are needed in mm-stable then I guess the process is to
propose this patch to the stable tree maintainers.

2022-10-04 21:30:00

by Seth Jenkins

[permalink] [raw]
Subject: Re: [PATCH] mm: /proc/pid/smaps_rollup: fix no vma's null-deref

I concur, mm-stable looks fine to me as well.

Jann and I conversed today and the tentative decision since this isn't
considered a high-priority security bug is to wait for maple tree to
merge into Linus's branch before submitting this patch to stable.

On Tue, Oct 4, 2022 at 2:46 PM Andrew Morton <[email protected]> wrote:
>
> On Mon, 3 Oct 2022 18:45:31 -0400 FirstName LastName <[email protected]> wrote:
>
> > From: Seth Jenkins <[email protected]>
> >
> > Commit 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value
> > seq_file") introduced a null-deref if there are no vma's in the task in
> > show_smaps_rollup.
> >
> > --- a/fs/proc/task_mmu.c
> > +++ b/fs/proc/task_mmu.c
> > @@ -969,7 +969,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v)
> > vma = vma->vm_next;
> > }
> >
> > - show_vma_header_prefix(m, priv->mm->mmap->vm_start,
> > + show_vma_header_prefix(m, priv->mm->mmap ? priv->mm->mmap->vm_start : 0,
> > last_vma_end, 0, 0, 0, 0);
> > seq_pad(m, ' ');
> > seq_puts(m, "[rollup]\n");
>
> The current mm tree is very different here. In fact the bug might not
> exist any more. Please take a look at the mm-stable branch at
> git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm?
>
> If no fixes are needed in mm-stable then I guess the process is to
> propose this patch to the stable tree maintainers.
>