Skip to content

[ciqlts9_4] Multiple patches tested (5 commits)#919

Open
ciq-kernel-automation[bot] wants to merge 5 commits intociqlts9_4from
{bmastbergen}_ciqlts9_4
Open

[ciqlts9_4] Multiple patches tested (5 commits)#919
ciq-kernel-automation[bot] wants to merge 5 commits intociqlts9_4from
{bmastbergen}_ciqlts9_4

Conversation

@ciq-kernel-automation
Copy link

Summary

This PR has been automatically created after successful completion of all CI stages.

Commit Message(s)

Squashfs: check return result of sb_min_blocksize

jira VULN-79861
cve CVE-2025-38415
commit-author Phillip Lougher <phillip@squashfs.org.uk>
commit 734aa85390ea693bb7eaf2240623d41b03705c84
squashfs: fix memory leak in squashfs_fill_super

jira VULN-79861
cve-bf CVE-2025-38415
commit-author Phillip Lougher <phillip@squashfs.org.uk>
commit b64700d41bdc4e9f82f1346c15a3678ebb91a89c
upstream-diff Minor conflict when applying due to missing
              0c12185728d6 ("Revert "squashfs: provide
              backing_dev_info in order to disable read-ahead").
              Change content is identical
i40e: add validation for ring_len param

jira VULN-158768
cve CVE-2025-39973
commit-author Lukasz Czapnik <lukasz.czapnik@intel.com>
commit 55d225670def06b01af2e7a5e0446fbe946289e8
i40e: validate ring_len parameter against hardware-specific values

jira VULN-158768
cve-bf CVE-2025-39973
commit-author Gregory Herrero <gregory.herrero@oracle.com>
commit 69942834215323cd9131db557091b4dec43f19c5
upstream-diff Minor conflicts applying the change due to
              additional functions in i40e.h in the upstream
              kernel.  Change content is identical.
github actions: Switch to test branch

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 27m 50s 30m 38s
aarch64 21m 10s 23m 0s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed
x86_64 188 30
aarch64 117 25

Test Comparison

x86_64:

  • ✅ Status: Passed - Within acceptable threshold (±3 tests)
  • Compared against: ciqlts9_4

aarch64:

  • ✅ Status: Passed - Within acceptable threshold (±3 tests)
  • Compared against: ciqlts9_4

🤖 This PR was automatically generated by GitHub Actions
Run ID: 22376118857

jira VULN-79861
cve CVE-2025-38415
commit-author Phillip Lougher <phillip@squashfs.org.uk>
commit 734aa85

Syzkaller reports an "UBSAN: shift-out-of-bounds in squashfs_bio_read" bug.

Syzkaller forks multiple processes which after mounting the Squashfs
filesystem, issues an ioctl("/dev/loop0", LOOP_SET_BLOCK_SIZE, 0x8000).
Now if this ioctl occurs at the same time another process is in the
process of mounting a Squashfs filesystem on /dev/loop0, the failure
occurs.  When this happens the following code in squashfs_fill_super()
fails.

----
msblk->devblksize = sb_min_blocksize(sb, SQUASHFS_DEVBLK_SIZE);
msblk->devblksize_log2 = ffz(~msblk->devblksize);
----

sb_min_blocksize() returns 0, which means msblk->devblksize is set to 0.

As a result, ffz(~msblk->devblksize) returns 64, and msblk->devblksize_log2
is set to 64.

This subsequently causes the

UBSAN: shift-out-of-bounds in fs/squashfs/block.c:195:36
shift exponent 64 is too large for 64-bit type 'u64' (aka
'unsigned long long')

This commit adds a check for a 0 return by sb_min_blocksize().

Link: https://lkml.kernel.org/r/20250409024747.876480-1-phillip@squashfs.org.uk
Fixes: 0aa6661 ("Squashfs: super block operations")
	Reported-by: syzbot+65761fc25a137b9c8c6e@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/67f0dd7a.050a0220.0a13.0230.GAE@google.com/
	Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
	Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 734aa85)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-79861
cve-bf CVE-2025-38415
commit-author Phillip Lougher <phillip@squashfs.org.uk>
commit b64700d
upstream-diff Minor conflict when applying due to missing
              0c12185 ("Revert "squashfs: provide
              backing_dev_info in order to disable read-ahead").
              Change content is identical

If sb_min_blocksize returns 0, squashfs_fill_super exits without freeing
allocated memory (sb->s_fs_info).

Fix this by moving the call to sb_min_blocksize to before memory is
allocated.

Link: https://lkml.kernel.org/r/20250811223740.110392-1-phillip@squashfs.org.uk
Fixes: 734aa85 ("Squashfs: check return result of sb_min_blocksize")
	Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
	Reported-by: Scott GUO <scottzhguo@tencent.com>
Closes: https://lore.kernel.org/all/20250811061921.3807353-1-scott_gzh@163.com
	Cc: <stable@vger.kernel.org>
	Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit b64700d)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-158768
cve CVE-2025-39973
commit-author Lukasz Czapnik <lukasz.czapnik@intel.com>
commit 55d2256

The `ring_len` parameter provided by the virtual function (VF)
is assigned directly to the hardware memory context (HMC) without
any validation.

To address this, introduce an upper boundary check for both Tx and Rx
queue lengths. The maximum number of descriptors supported by the
hardware is 8k-32.
Additionally, enforce alignment constraints: Tx rings must be a multiple
of 8, and Rx rings must be a multiple of 32.

Fixes: 5c3c48a ("i40e: implement virtual device interface")
	Cc: stable@vger.kernel.org
	Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
	Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
	Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
	Reviewed-by: Simon Horman <horms@kernel.org>
	Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
	Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
(cherry picked from commit 55d2256)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-158768
cve-bf CVE-2025-39973
commit-author Gregory Herrero <gregory.herrero@oracle.com>
commit 6994283
upstream-diff Minor conflicts applying the change due to
              additional functions in i40e.h in the upstream
              kernel.  Change content is identical.

The maximum number of descriptors supported by the hardware is
hardware-dependent and can be retrieved using
i40e_get_max_num_descriptors(). Move this function to a shared header
and use it when checking for valid ring_len parameter rather than using
hardcoded value.

By fixing an over-acceptance issue, behavior change could be seen where
ring_len could now be rejected while configuring rx and tx queues if its
size is larger than the hardware-dependent maximum number of
descriptors.

Fixes: 55d2256 ("i40e: add validation for ring_len param")
	Signed-off-by: Gregory Herrero <gregory.herrero@oracle.com>
	Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
	Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
	Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
(cherry picked from commit 6994283)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
@github-actions
Copy link

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/22402046003

@github-actions
Copy link

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/22402046003

@roxanan1996
Copy link
Contributor

Looks ok. I assume the last commit should be removed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants