Re: [PATCH -next] exec: Fix mem leak in kernel_read_file

2019-03-13 Thread Dmitry Kasatkin




On 13/03/2019 16:38, gre...@linuxfoundation.org wrote:

On Wed, Mar 13, 2019 at 02:12:30PM +, Dmitry Kasatkin wrote:







From: Sasha Levin 
Sent: Tuesday, March 12, 2019 1:16 AM
To: Dmitry Kasatkin
Cc: Al Viro; yuehaibing; linux-kernel@vger.kernel.org; 
linux-fsde...@vger.kernel.org; keesc...@chromium.org; sta...@vger.kernel.org; 
gre...@google.com
Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
 
On Mon, Mar 11, 2019 at 04:59:14PM +, Dmitry Kasatkin wrote:


From: Al Viro  on behalf of Al Viro 

Sent: Tuesday, February 19, 2019 4:25 AM
To: yuehaibing
Cc: linux-kernel@vger.kernel.org; linux-fsde...@vger.kernel.org; Dmitry 
Kasatkin; keesc...@chromium.org
Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
  
On Tue, Feb 19, 2019 at 10:10:38AM +0800, YueHaibing wrote:

syzkaller report this:
BUG: memory leak
unreferenced object 0xc9000488d000 (size 9195520):
    comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
    hex dump (first 32 bytes):
  ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
  02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
    backtrace:
  [<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
  [<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
  [<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
  [<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
  [<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
  [<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 
kernel/module.c:3895
  [<6f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
  [<ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
  [<241f889b>] 0x

It should goto 'out_free' lable to free allocated buf while kernel_read
fails.


Applied.


This must be applied to stables as well...



It's already in all relevant stable trees...


I only can see in longterm 4.19.

What about 4.9 and 4.14?


It was in the queue already for that (you can see it on git.kernel.org),
and they are now part of the -rc releases that are currently out for
review.

thanks,

greg k-h



Thanks!

Dmitry


Re: [PATCH -next] exec: Fix mem leak in kernel_read_file

2019-03-13 Thread gre...@linuxfoundation.org
On Wed, Mar 13, 2019 at 02:12:30PM +, Dmitry Kasatkin wrote:
> 
> 
> 
> 
> 
> 
> From: Sasha Levin 
> Sent: Tuesday, March 12, 2019 1:16 AM
> To: Dmitry Kasatkin
> Cc: Al Viro; yuehaibing; linux-kernel@vger.kernel.org; 
> linux-fsde...@vger.kernel.org; keesc...@chromium.org; sta...@vger.kernel.org; 
> gre...@google.com
> Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
>     
> On Mon, Mar 11, 2019 at 04:59:14PM +, Dmitry Kasatkin wrote:
> >
> >From: Al Viro  on behalf of Al Viro 
> >
> >Sent: Tuesday, February 19, 2019 4:25 AM
> >To: yuehaibing
> >Cc: linux-kernel@vger.kernel.org; linux-fsde...@vger.kernel.org; Dmitry 
> >Kasatkin; keesc...@chromium.org
> >Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
> > 
> >On Tue, Feb 19, 2019 at 10:10:38AM +0800, YueHaibing wrote:
> >> syzkaller report this:
> >> BUG: memory leak
> >> unreferenced object 0xc9000488d000 (size 9195520):
> >>   comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
> >>   hex dump (first 32 bytes):
> >> ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
> >> 02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
> >>   backtrace:
> >> [<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
> >> [<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
> >> [<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
> >> [<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
> >> [<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
> >> [<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 
> >>kernel/module.c:3895
> >> [<6f58491f>] do_syscall_64+0x147/0x600 
> >>arch/x86/entry/common.c:290
> >> [<ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> >> [<241f889b>] 0x
> >>
> >> It should goto 'out_free' lable to free allocated buf while kernel_read
> >> fails.
> >
> >Applied.
> >
> >
> >This must be applied to stables as well...
> 
> > It's already in all relevant stable trees...
> 
> I only can see in longterm 4.19.
> 
> What about 4.9 and 4.14?

It was in the queue already for that (you can see it on git.kernel.org),
and they are now part of the -rc releases that are currently out for
review.

thanks,

greg k-h


Re: [PATCH -next] exec: Fix mem leak in kernel_read_file

2019-03-13 Thread Dmitry Kasatkin







From: Sasha Levin 
Sent: Tuesday, March 12, 2019 1:16 AM
To: Dmitry Kasatkin
Cc: Al Viro; yuehaibing; linux-kernel@vger.kernel.org; 
linux-fsde...@vger.kernel.org; keesc...@chromium.org; sta...@vger.kernel.org; 
gre...@google.com
Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
    
On Mon, Mar 11, 2019 at 04:59:14PM +, Dmitry Kasatkin wrote:
>
>From: Al Viro  on behalf of Al Viro 
>
>Sent: Tuesday, February 19, 2019 4:25 AM
>To: yuehaibing
>Cc: linux-kernel@vger.kernel.org; linux-fsde...@vger.kernel.org; Dmitry 
>Kasatkin; keesc...@chromium.org
>Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
> 
>On Tue, Feb 19, 2019 at 10:10:38AM +0800, YueHaibing wrote:
>> syzkaller report this:
>> BUG: memory leak
>> unreferenced object 0xc9000488d000 (size 9195520):
>>   comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
>>   hex dump (first 32 bytes):
>> ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
>> 02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
>>   backtrace:
>> [<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
>> [<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
>> [<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
>> [<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
>> [<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
>> [<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 
>>kernel/module.c:3895
>> [<6f58491f>] do_syscall_64+0x147/0x600 
>>arch/x86/entry/common.c:290
>> [<ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
>> [<241f889b>] 0x
>>
>> It should goto 'out_free' lable to free allocated buf while kernel_read
>> fails.
>
>Applied.
>
>
>This must be applied to stables as well...

> It's already in all relevant stable trees...

I only can see in longterm 4.19.

What about 4.9 and 4.14?

Thanks,
Dmitry


Re: [PATCH -next] exec: Fix mem leak in kernel_read_file

2019-03-11 Thread Sasha Levin

On Mon, Mar 11, 2019 at 04:59:14PM +, Dmitry Kasatkin wrote:


From: Al Viro  on behalf of Al Viro 

Sent: Tuesday, February 19, 2019 4:25 AM
To: yuehaibing
Cc: linux-kernel@vger.kernel.org; linux-fsde...@vger.kernel.org; Dmitry 
Kasatkin; keesc...@chromium.org
Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
 
On Tue, Feb 19, 2019 at 10:10:38AM +0800, YueHaibing wrote:

syzkaller report this:
BUG: memory leak
unreferenced object 0xc9000488d000 (size 9195520):
   comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
   hex dump (first 32 bytes):
 ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
 02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
   backtrace:
 [<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
 [<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
 [<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
 [<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
 [<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
 [<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 kernel/module.c:3895
 [<6f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
 [<ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
 [<241f889b>] 0x

It should goto 'out_free' lable to free allocated buf while kernel_read
fails.


Applied.


This must be applied to stables as well...


It's already in all relevant stable trees...

--
Thanks,
Sasha


Re: [PATCH -next] exec: Fix mem leak in kernel_read_file

2019-03-11 Thread Dmitry Kasatkin


From: Al Viro  on behalf of Al Viro 

Sent: Tuesday, February 19, 2019 4:25 AM
To: yuehaibing
Cc: linux-kernel@vger.kernel.org; linux-fsde...@vger.kernel.org; Dmitry 
Kasatkin; keesc...@chromium.org
Subject: Re: [PATCH -next] exec: Fix mem leak in kernel_read_file
    
On Tue, Feb 19, 2019 at 10:10:38AM +0800, YueHaibing wrote:
> syzkaller report this:
> BUG: memory leak
> unreferenced object 0xc9000488d000 (size 9195520):
>   comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
>   hex dump (first 32 bytes):
> ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
> 02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
>   backtrace:
> [<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
> [<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
> [<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
> [<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
> [<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
> [<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 
>kernel/module.c:3895
> [<6f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
> [<ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> [<241f889b>] 0x
> 
> It should goto 'out_free' lable to free allocated buf while kernel_read
> fails.

Applied.


This must be applied to stables as well...



Re: [PATCH -next] exec: Fix mem leak in kernel_read_file

2019-02-18 Thread Al Viro
On Tue, Feb 19, 2019 at 10:10:38AM +0800, YueHaibing wrote:
> syzkaller report this:
> BUG: memory leak
> unreferenced object 0xc9000488d000 (size 9195520):
>   comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
>   hex dump (first 32 bytes):
> ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
> 02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
>   backtrace:
> [<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
> [<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
> [<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
> [<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
> [<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
> [<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 
> kernel/module.c:3895
> [<6f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
> [] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> [<241f889b>] 0x
> 
> It should goto 'out_free' lable to free allocated buf while kernel_read
> fails.

Applied.


[PATCH -next] exec: Fix mem leak in kernel_read_file

2019-02-18 Thread YueHaibing
syzkaller report this:
BUG: memory leak
unreferenced object 0xc9000488d000 (size 9195520):
  comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
  hex dump (first 32 bytes):
ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  
02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..z.
  backtrace:
[<0863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
[<0863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
[<0863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
[<3f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
[<2385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
[<11953ff1>] __do_sys_finit_module+0x13b/0x2a0 kernel/module.c:3895
[<6f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
[] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[<241f889b>] 0x

It should goto 'out_free' lable to free allocated buf while kernel_read
fails.

Fixes: 39d637af5aa7 ("vfs: forbid write access when reading a file into memory")
Signed-off-by: YueHaibing 
---
 fs/exec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/exec.c b/fs/exec.c
index 7a4b5ef..2e00333 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -932,7 +932,7 @@ int kernel_read_file(struct file *file, void **buf, loff_t 
*size,
bytes = kernel_read(file, *buf + pos, i_size - pos, );
if (bytes < 0) {
ret = bytes;
-   goto out;
+   goto out_free;
}
 
if (bytes == 0)
-- 
2.7.0