2022-08-15 11:42:26

by Alon Zahavi

[permalink] [raw]
Subject: [PATCH] ntfs3: Fix attr_punch_hole() null pointer derenference

From: Alon Zahavi <[email protected]>

The bug occours due to a misuse of `attr` variable instead of `attr_b`.
`attr` is being initialized as NULL, then being derenfernced
as `attr->res.data_size`.

This bug causes a crash of the ntfs3 driver itself,
If compiled directly to the kernel, it crashes the whole system.

Signed-off-by: Alon Zahavi <[email protected]>
Co-developed-by: Tal Lossos <[email protected]>
Signed-off-by: Tal Lossos <[email protected]>
---
fs/ntfs3/attrib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c
index e8c00dda42ad..4e74bc8f01ed 100644
--- a/fs/ntfs3/attrib.c
+++ b/fs/ntfs3/attrib.c
@@ -1949,7 +1949,7 @@ int attr_punch_hole(struct ntfs_inode *ni, u64 vbo, u64 bytes, u32 *frame_size)
return -ENOENT;

if (!attr_b->non_res) {
- u32 data_size = le32_to_cpu(attr->res.data_size);
+ u32 data_size = le32_to_cpu(attr_b->res.data_size);
u32 from, to;

if (vbo > data_size)
--
2.25.1


2022-09-30 16:35:01

by Konstantin Komarov

[permalink] [raw]
Subject: Re: [PATCH] ntfs3: Fix attr_punch_hole() null pointer derenference



On 8/15/22 14:07, Alon Zahavi wrote:
> From: Alon Zahavi <[email protected]>
>
> The bug occours due to a misuse of `attr` variable instead of `attr_b`.
> `attr` is being initialized as NULL, then being derenfernced
> as `attr->res.data_size`.
>
> This bug causes a crash of the ntfs3 driver itself,
> If compiled directly to the kernel, it crashes the whole system.
>
> Signed-off-by: Alon Zahavi <[email protected]>
> Co-developed-by: Tal Lossos <[email protected]>
> Signed-off-by: Tal Lossos <[email protected]>
> ---
> fs/ntfs3/attrib.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c
> index e8c00dda42ad..4e74bc8f01ed 100644
> --- a/fs/ntfs3/attrib.c
> +++ b/fs/ntfs3/attrib.c
> @@ -1949,7 +1949,7 @@ int attr_punch_hole(struct ntfs_inode *ni, u64 vbo, u64 bytes, u32 *frame_size)
> return -ENOENT;
>
> if (!attr_b->non_res) {
> - u32 data_size = le32_to_cpu(attr->res.data_size);
> + u32 data_size = le32_to_cpu(attr_b->res.data_size);
> u32 from, to;
>
> if (vbo > data_size)

Applied, thanks!

2023-01-17 22:28:11

by SeongJae Park

[permalink] [raw]
Subject: Re: [PATCH] ntfs3: Fix attr_punch_hole() null pointer derenference

Hello,

On Mon, 15 Aug 2022 14:07:12 +0300 Alon Zahavi <[email protected]> wrote:

> From: Alon Zahavi <[email protected]>
>
> The bug occours due to a misuse of `attr` variable instead of `attr_b`.
> `attr` is being initialized as NULL, then being derenfernced
> as `attr->res.data_size`.
>
> This bug causes a crash of the ntfs3 driver itself,
> If compiled directly to the kernel, it crashes the whole system.
>
> Signed-off-by: Alon Zahavi <[email protected]>
> Co-developed-by: Tal Lossos <[email protected]>
> Signed-off-by: Tal Lossos <[email protected]>

This patch has now merged in mainline as
6d5c9e79b726cc473d40e9cb60976dbe8e669624. stable@, could you please merge this
in stable kernels?

Fixes: be71b5cba2e64 ("fs/ntfs3: Add attrib operations") # 5.14


Thanks,
SJ

> ---
> fs/ntfs3/attrib.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c
> index e8c00dda42ad..4e74bc8f01ed 100644
> --- a/fs/ntfs3/attrib.c
> +++ b/fs/ntfs3/attrib.c
> @@ -1949,7 +1949,7 @@ int attr_punch_hole(struct ntfs_inode *ni, u64 vbo, u64 bytes, u32 *frame_size)
> return -ENOENT;
>
> if (!attr_b->non_res) {
> - u32 data_size = le32_to_cpu(attr->res.data_size);
> + u32 data_size = le32_to_cpu(attr_b->res.data_size);
> u32 from, to;
>
> if (vbo > data_size)
> --
> 2.25.1
>
>

2023-01-17 22:31:33

by SeongJae Park

[permalink] [raw]
Subject: Re: [PATCH] ntfs3: Fix attr_punch_hole() null pointer derenference

Hello,

On Mon, 15 Aug 2022 14:07:12 +0300 Alon Zahavi <[email protected]> wrote:

> From: Alon Zahavi <[email protected]>
>
> The bug occours due to a misuse of `attr` variable instead of `attr_b`.
> `attr` is being initialized as NULL, then being derenfernced
> as `attr->res.data_size`.
>
> This bug causes a crash of the ntfs3 driver itself,
> If compiled directly to the kernel, it crashes the whole system.
>
> Signed-off-by: Alon Zahavi <[email protected]>
> Co-developed-by: Tal Lossos <[email protected]>
> Signed-off-by: Tal Lossos <[email protected]>

This patch has now merged in mainline as
6d5c9e79b726cc473d40e9cb60976dbe8e669624. stable@, could you please merge this
in stable kernels?

Fixes: be71b5cba2e64 ("fs/ntfs3: Add attrib operations") # 5.14


Thanks,
SJ

> ---
> fs/ntfs3/attrib.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c
> index e8c00dda42ad..4e74bc8f01ed 100644
> --- a/fs/ntfs3/attrib.c
> +++ b/fs/ntfs3/attrib.c
> @@ -1949,7 +1949,7 @@ int attr_punch_hole(struct ntfs_inode *ni, u64 vbo, u64 bytes, u32 *frame_size)
> return -ENOENT;
>
> if (!attr_b->non_res) {
> - u32 data_size = le32_to_cpu(attr->res.data_size);
> + u32 data_size = le32_to_cpu(attr_b->res.data_size);
> u32 from, to;
>
> if (vbo > data_size)
> --
> 2.25.1
>
>

2023-01-22 13:46:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] ntfs3: Fix attr_punch_hole() null pointer derenference

On Tue, Jan 17, 2023 at 08:21:36PM +0000, SeongJae Park wrote:
> Hello,
>
> On Mon, 15 Aug 2022 14:07:12 +0300 Alon Zahavi <[email protected]> wrote:
>
> > From: Alon Zahavi <[email protected]>
> >
> > The bug occours due to a misuse of `attr` variable instead of `attr_b`.
> > `attr` is being initialized as NULL, then being derenfernced
> > as `attr->res.data_size`.
> >
> > This bug causes a crash of the ntfs3 driver itself,
> > If compiled directly to the kernel, it crashes the whole system.
> >
> > Signed-off-by: Alon Zahavi <[email protected]>
> > Co-developed-by: Tal Lossos <[email protected]>
> > Signed-off-by: Tal Lossos <[email protected]>
>
> This patch has now merged in mainline as
> 6d5c9e79b726cc473d40e9cb60976dbe8e669624. stable@, could you please merge this
> in stable kernels?
>
> Fixes: be71b5cba2e64 ("fs/ntfs3: Add attrib operations") # 5.14
>

Now queued up, thanks.

greg k-h