diff options
| author | Tom Rini <[email protected]> | 2026-08-27 15:00:11 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-08-27 15:00:11 -0600 |
| commit | ced85f31db7abb858db2f88894e0166a177e3192 (patch) | |
| tree | 4ad701c9e6b41fc1f9cfcdb98d99207d64ba0891 /scripts/checkpatch.pl | |
| parent | 964ad5b5c91b7be56e443e899d7f873e6aa8c9fc (diff) | |
| parent | e007b43a272edae8a63ad66f0151ceaf8cf003c1 (diff) | |
Merge patch series "fs/squashfs: bounds checks on image-controlled offsets"
Pranav Rajendran <[email protected]> says:
Two out-of-bounds reads reachable from a crafted SquashFS image, found
while auditing fs/squashfs for image-controlled values used as buffer
offsets without validation. Both were reported to the list earlier; these
are the fixes.
Patch 1 covers sqfs_frag_lookup(), where the fragment index is checked
only against a superblock field that is itself part of the image, and
every subsequent access derived from it is unchecked against the buffer
that was actually read.
Patch 2 covers sqfs_dir_offset(). Commit 57e0bb7bf00d ("fs/squashfs: add
sqfs_dir_offset() error checks") addressed the negative return value; the
positive range is still unbounded, and the callers use it to index the
directory table.
Neither patch changes behaviour for well-formed images: the rejected
cases all describe inodes that reference data outside the tables the
superblock declares.
checkpatch-clean, builds for sandbox with no new warnings at W=1, and
test_sqfs_ls and test_sqfs_load both pass against images generated by
mksquashfs 4.6.1 (the default plus the three lzo fragment variants).
Review of the exact bounds is welcome, in particular whether patch 2 is
too strict in rejecting a directory header that would start within the
last SQFS_DIR_HEADER_SIZE bytes of the directory table.
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'scripts/checkpatch.pl')
0 files changed, 0 insertions, 0 deletions
