Re: [PATCH v3] lz4: fix LZ4_decompress_safe_partial read out of bound

From: Andrew Morton
Date: Mon Apr 04 2022 - 18:09:41 EST


On Sat, 2 Apr 2022 12:55:39 +0800 Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> wrote:

> On Fri, Nov 19, 2021 at 06:23:24PM +0000, Nick Terrell wrote:
> >
> >
> > > On Nov 11, 2021, at 2:50 AM, Guo Xuenan <guoxuenan@xxxxxxxxxx> wrote:
> > >
> > > When partialDecoding, it is EOF if we've either, filled the output
> > > buffer or can't proceed with reading an offset for following match.
> > >
> > > In some extreme corner cases when compressed data is crusted corrupted,
> > > UAF will occur. As reported by KASAN [1], LZ4_decompress_safe_partial
> > > may lead to read out of bound problem during decoding. lz4 upstream has
> > > fixed it [2] and this issue has been disscussed here [3] before.
> > >
> > > current decompression routine was ported from lz4 v1.8.3, bumping lib/lz4
> > > to v1.9.+ is certainly a huge work to be done later, so, we'd better fix
> > > it first.
> > >
> > > [1] https://lore.kernel.org/all/000000000000830d1205cf7f0477@xxxxxxxxxx/
> > > [2] https://github.com/lz4/lz4/commit/c5d6f8a8be3927c0bec91bcc58667a6cfad244ad#
> > > [3] https://lore.kernel.org/all/CC666AE8-4CA4-4951-B6FB-A2EFDE3AC03B@xxxxxx/
> > >
> > > Reported-by: syzbot+63d688f1d899c588fb71@xxxxxxxxxxxxxxxxxxxxxxxxx
> > > Cc: hsiangkao@xxxxxxxxxxxxxxxxx
> > > Cc: terrelln@xxxxxx
> > > Cc: cyan@xxxxxx
> > > Cc: cy.fan@xxxxxxxxxx
> > > Signed-off-by: Guo Xuenan <guoxuenan@xxxxxxxxxx>
> >
> > Sorry I’m a bit late to the party, but this looks good to me!
> >
> > Reviewed-by: Nick Terrell <terrelln@xxxxxx>
>
> Acked-by: Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx>
>
> Hi Andrew,
>
> This patch has already been pending for 2 release cycles.. Would you
> mind submitting it upstream? Or are there other concerns about this?

Sorry, I'd not noticed that this was from lz4 upstream.

I'll put a cc:stable in there and shall send it upstream this week.

In the changelog, can someone please explain what "crusted corrupted"
is saying?