Re: [PATCH 1/4] Squashfs: avoid out of bounds writes in decompressors

From: Andrew Morton
Date: Thu Feb 04 2021 - 19:54:13 EST


On Thu, 4 Feb 2021 13:02:46 +0000 Phillip Lougher <phillip@xxxxxxxxxxxxxxx> wrote:

> This is a regression introduced by the patch "migrate from ll_rw_block
> usage to BIO".

Fixes: 93e72b3c612adc ("squashfs: migrate from ll_rw_block usage to BIO")

> Sysbot/Syskaller has reported a number of "out of bounds writes" and
> "unable to handle kernel paging request in squashfs_decompress" errors
> which have been identified as a regression introduced by the above patch.
>
> Specifically, the patch removed the following sanity check
>
> if (length < 0 || length > output->length ||
> (index + length) > msblk->bytes_used)
>
> This check did two things:
>
> 1. It ensured any reads were not beyond the end of the filesystem
>
> 2. It ensured that the "length" field read from the filesystem
> was within the expected maximum length. Without this any
> corrupted values can over-run allocated buffers.
>

All sounds fairly serious. Should I add a cc:stable to this?