Skip to content

[ciqlts9_6] Multiple patches tested (11 commits) - #1475

Open
ciq-kernel-automation[bot] wants to merge 11 commits into
ciqlts9_6from
{ciq_kernel_automation}_ciqlts9_6
Open

[ciqlts9_6] Multiple patches tested (11 commits)#1475
ciq-kernel-automation[bot] wants to merge 11 commits into
ciqlts9_6from
{ciq_kernel_automation}_ciqlts9_6

Conversation

@ciq-kernel-automation

@ciq-kernel-automation ciq-kernel-automation Bot commented Jul 27, 2026

Copy link
Copy Markdown

Summary

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

Commit Message(s)

VMCI: Fix use-after-free when removing resource in vmci_resource_remove()

jira VULN-168137
cve CVE-2024-46738
commit-author David Fernandez Gonzalez <david.fernandez.gonzalez@oracle.com>
commit 48b9a8dabcc3cf5f961b2ebcd8933bf9204babb7
vt: prevent kernel-infoleak in con_font_get()

jira VULN-168027
cve CVE-2024-50076
commit-author Jeongjun Park <aha310510@gmail.com>
commit f956052e00de211b5c9ebaa1958366c23f82ee9e
Bluetooth: hci_event: Fix UAF in hci_acl_create_conn_sync

jira VULN-161961
cve CVE-2025-39982
commit-author Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
commit 9e622804d57e2d08f0271200606bd1270f75126f
drm/amd/display: Do not skip unrelated mode changes in DSC validation

jira VULN-185855
cve CVE-2026-31488
commit-author Yussuf Khalil <dev@pp3345.net>
commit aed3d041ab061ec8a64f50a3edda0f4db7280025
net: sched: act_csum: validate nested VLAN headers

jira VULN-183031
cve CVE-2026-31684
commit-author Ruide Cao <caoruide123@gmail.com>
commit c842743d073bdd683606cb414eb0ca84465dd834
smb: client: fix OOB reads parsing symlink error response

jira VULN-183093
cve CVE-2026-31613
commit-author Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 3df690bba28edec865cf7190be10708ad0ddd67e
drm/gem: Fix inconsistent plane dimension calculation in drm_gem_fb_init_with_funcs()

jira VULN-187131
cve CVE-2026-46209
commit-author Ashutosh Desai <ashutoshdesai993@gmail.com>
commit 3d4c2268bd7243c3780fe32bf24ff876da272acf
SUNRPC: introduce cache_check_rcu to help check in rcu context

jira VULN-167075
cve-pre CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit 2f55dbe4e2072c9e99298c6f37473778a98c9107
nfsd: no need get cache ref when protected by rcu

jira VULN-167075
cve CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit c224edca7af028828e2ad866b61d731b5e72b46d
SUNRPC: no need get cache ref when protected by rcu

jira VULN-167075
cve CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit 1b10f0b603c066d81327c163a23c19f01e112366
nfsd: fix UAF when access ex_uuid or ex_stats

jira VULN-167075
cve CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit 2530766492ec7726582bcde44575ec3ff7487cd2

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 25m 57s 26m 49s
aarch64 18m 5s 18m 46s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 205 44 ciqlts9_6 ✅ No regressions
aarch64 154 45 ciqlts9_6 ✅ No regressions

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1453 82 ciqlts9_6 ✅ No regressions
aarch64 1426 83 ciqlts9_6 ✅ No regressions

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

CIQ Kernel Automation added 2 commits July 27, 2026 07:16
…ve()

jira VULN-168137
cve CVE-2024-46738
commit-author David Fernandez Gonzalez <david.fernandez.gonzalez@oracle.com>
commit 48b9a8d

When removing a resource from vmci_resource_table in
vmci_resource_remove(), the search is performed using the resource
handle by comparing context and resource fields.

It is possible though to create two resources with different types
but same handle (same context and resource fields).

When trying to remove one of the resources, vmci_resource_remove()
may not remove the intended one, but the object will still be freed
as in the case of the datagram type in vmci_datagram_destroy_handle().
vmci_resource_table will still hold a pointer to this freed resource
leading to a use-after-free vulnerability.

BUG: KASAN: use-after-free in vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [inline]
BUG: KASAN: use-after-free in vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147
Read of size 4 at addr ffff88801c16d800 by task syz-executor197/1592
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x82/0xa9 lib/dump_stack.c:106
 print_address_description.constprop.0+0x21/0x366 mm/kasan/report.c:239
 __kasan_report.cold+0x7f/0x132 mm/kasan/report.c:425
 kasan_report+0x38/0x51 mm/kasan/report.c:442
 vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [inline]
 vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147
 vmci_qp_broker_detach+0x89a/0x11b9 drivers/misc/vmw_vmci/vmci_queue_pair.c:2182
 ctx_free_ctx+0x473/0xbe1 drivers/misc/vmw_vmci/vmci_context.c:444
 kref_put include/linux/kref.h:65 [inline]
 vmci_ctx_put drivers/misc/vmw_vmci/vmci_context.c:497 [inline]
 vmci_ctx_destroy+0x170/0x1d6 drivers/misc/vmw_vmci/vmci_context.c:195
 vmci_host_close+0x125/0x1ac drivers/misc/vmw_vmci/vmci_host.c:143
 __fput+0x261/0xa34 fs/file_table.c:282
 task_work_run+0xf0/0x194 kernel/task_work.c:164
 tracehook_notify_resume include/linux/tracehook.h:189 [inline]
 exit_to_user_mode_loop+0x184/0x189 kernel/entry/common.c:187
 exit_to_user_mode_prepare+0x11b/0x123 kernel/entry/common.c:220
 __syscall_exit_to_user_mode_work kernel/entry/common.c:302 [inline]
 syscall_exit_to_user_mode+0x18/0x42 kernel/entry/common.c:313
 do_syscall_64+0x41/0x85 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x6e/0x0

This change ensures the type is also checked when removing
the resource from vmci_resource_table in vmci_resource_remove().

Fixes: bc63ded ("VMCI: resource object implementation.")
	Cc: stable@vger.kernel.org
	Reported-by: George Kennedy <george.kennedy@oracle.com>
	Signed-off-by: David Fernandez Gonzalez <david.fernandez.gonzalez@oracle.com>
Link: https://lore.kernel.org/r/20240828154338.754746-1-david.fernandez.gonzalez@oracle.com
	Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 48b9a8d)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-168027
cve CVE-2024-50076
commit-author Jeongjun Park <aha310510@gmail.com>
commit f956052

font.data may not initialize all memory spaces depending on the implementation
of vc->vc_sw->con_font_get. This may cause info-leak, so to prevent this, it
is safest to modify it to initialize the allocated memory space to 0, and it
generally does not affect the overall performance of the system.

	Cc: stable@vger.kernel.org
	Reported-by: syzbot+955da2d57931604ee691@syzkaller.appspotmail.com
Fixes: 05e2600 ("VT: Bump font size limitation to 64x128 pixels")
	Signed-off-by: Jeongjun Park <aha310510@gmail.com>
Link: https://lore.kernel.org/r/20241010174619.59662-1-aha310510@gmail.com
	Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit f956052)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
@ciq-kernel-automation ciq-kernel-automation Bot added the created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI) label Jul 27, 2026
@github-actions

Copy link
Copy Markdown

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

@github-actions

Copy link
Copy Markdown

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit ee011f09e28 (nfsd: release svc_expkey/svc_export with rcu_work) references upstream commit
    f8c989a0c89a which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    69d803c40ed nfsd: Revert "nfsd: release svc_expkey/svc_export with rcu_work" (Yang Erkun)

This is an automated message from the kernel commit checker workflow.

@github-actions

Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit ee011f09e28 (nfsd: release svc_expkey/svc_export with rcu_work) → upstream f8c989a0c89a
    Differences found:
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -348,4 +348,4 @@
-					     EXP_STATS_COUNTERS_NUM);
+					    EXP_STATS_COUNTERS_NUM);
 }
 
 static void svc_export_put(struct kref *ref)

This is an automated interdiff check for backported commits.

@github-actions

Copy link
Copy Markdown

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

@bmastbergen
bmastbergen requested a review from a team July 27, 2026 19:15
@bmastbergen

Copy link
Copy Markdown
Collaborator

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit ee011f09e28 (nfsd: release svc_expkey/svc_export with rcu_work) references upstream commit
    f8c989a0c89a which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    69d803c40ed nfsd: Revert "nfsd: release svc_expkey/svc_export with rcu_work" (Yang Erkun)

This is an automated message from the kernel commit checker workflow.

The fix commit and its revert have already been applied to this kernel:
dee104076fbcd
e1876492865a6

There is this lkml RFC that proposes the revert, and four follow ups to fix the issue a different way:
https://lore.kernel.org/all/20241216142156.4133267-1-yangerkun@huaweicloud.com/

That gets refined to a v2 (after the revert is already merged) which gets merged:
https://lore.kernel.org/all/20241225065908.1547645-1-yangerkun@huawei.com/

So I'm wondering if we should drop ee011f09e28 (nfsd: release svc_expkey/svc_export with rcu_work) and apply the 4 commits from the v2 series. It seems like that is the actual fix for the CVE, even though nothing explicitly says so.

@PlaidCat

Copy link
Copy Markdown
Collaborator

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit ee011f09e28 (nfsd: release svc_expkey/svc_export with rcu_work) references upstream commit
    f8c989a0c89a which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    69d803c40ed nfsd: Revert "nfsd: release svc_expkey/svc_export with rcu_work" (Yang Erkun)

This is an automated message from the kernel commit checker workflow.

The fix commit and its revert have already been applied to this kernel: dee104076fbcd e1876492865a6

There is this lkml RFC that proposes the revert, and four follow ups to fix the issue a different way: https://lore.kernel.org/all/20241216142156.4133267-1-yangerkun@huaweicloud.com/

That gets refined to a v2 (after the revert is already merged) which gets merged: https://lore.kernel.org/all/20241225065908.1547645-1-yangerkun@huawei.com/

So I'm wondering if we should drop ee011f09e28 (nfsd: release svc_expkey/svc_export with rcu_work) and apply the 4 commits from the v2 series. It seems like that is the actual fix for the CVE, even though nothing explicitly says so.

Yeah we should probably do that, i'm wondering why the reapplied because those commits are from CentOS9 .

CVE-2026-31404 is for nfsd: no need get cache ref when protected by rcu in that change set, but i'm wondering if red hat saw the potential failure is less impactful than the 4 commit follow up since they fixed it again after reverting it prior to 9.6 fork.

CIQ Kernel Automation and others added 9 commits July 28, 2026 13:15
jira VULN-161961
cve CVE-2025-39982
commit-author Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
commit 9e62280

This fixes the following UFA in hci_acl_create_conn_sync where a
connection still pending is command submission (conn->state == BT_OPEN)
maybe freed, also since this also can happen with the likes of
hci_le_create_conn_sync fix it as well:

BUG: KASAN: slab-use-after-free in hci_acl_create_conn_sync+0x5ef/0x790 net/bluetooth/hci_sync.c:6861
Write of size 2 at addr ffff88805ffcc038 by task kworker/u11:2/9541

CPU: 1 UID: 0 PID: 9541 Comm: kworker/u11:2 Not tainted 6.16.0-rc7 #3 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Workqueue: hci3 hci_cmd_sync_work
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:378 [inline]
 print_report+0xca/0x230 mm/kasan/report.c:480
 kasan_report+0x118/0x150 mm/kasan/report.c:593
 hci_acl_create_conn_sync+0x5ef/0x790 net/bluetooth/hci_sync.c:6861
 hci_cmd_sync_work+0x210/0x3a0 net/bluetooth/hci_sync.c:332
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
 worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
 kthread+0x70e/0x8a0 kernel/kthread.c:464
 ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
 </TASK>

Allocated by task 123736:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
 poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
 __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394
 kasan_kmalloc include/linux/kasan.h:260 [inline]
 __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4359
 kmalloc_noprof include/linux/slab.h:905 [inline]
 kzalloc_noprof include/linux/slab.h:1039 [inline]
 __hci_conn_add+0x233/0x1b30 net/bluetooth/hci_conn.c:939
 hci_conn_add_unset net/bluetooth/hci_conn.c:1051 [inline]
 hci_connect_acl+0x16c/0x4e0 net/bluetooth/hci_conn.c:1634
 pair_device+0x418/0xa70 net/bluetooth/mgmt.c:3556
 hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719
 hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839
 sock_sendmsg_nosec net/socket.c:712 [inline]
 __sock_sendmsg+0x219/0x270 net/socket.c:727
 sock_write_iter+0x258/0x330 net/socket.c:1131
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x54b/0xa90 fs/read_write.c:686
 ksys_write+0x145/0x250 fs/read_write.c:738
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Freed by task 103680:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
 kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
 poison_slab_object mm/kasan/common.c:247 [inline]
 __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264
 kasan_slab_free include/linux/kasan.h:233 [inline]
 slab_free_hook mm/slub.c:2381 [inline]
 slab_free mm/slub.c:4643 [inline]
 kfree+0x18e/0x440 mm/slub.c:4842
 device_release+0x9c/0x1c0
 kobject_cleanup lib/kobject.c:689 [inline]
 kobject_release lib/kobject.c:720 [inline]
 kref_put include/linux/kref.h:65 [inline]
 kobject_put+0x22b/0x480 lib/kobject.c:737
 hci_conn_cleanup net/bluetooth/hci_conn.c:175 [inline]
 hci_conn_del+0x8ff/0xcb0 net/bluetooth/hci_conn.c:1173
 hci_conn_complete_evt+0x3c7/0x1040 net/bluetooth/hci_event.c:3199
 hci_event_func net/bluetooth/hci_event.c:7477 [inline]
 hci_event_packet+0x7e0/0x1200 net/bluetooth/hci_event.c:7531
 hci_rx_work+0x46a/0xe80 net/bluetooth/hci_core.c:4070
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
 worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
 kthread+0x70e/0x8a0 kernel/kthread.c:464
 ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245

Last potentially related work creation:
 kasan_save_stack+0x3e/0x60 mm/kasan/common.c:47
 kasan_record_aux_stack+0xbd/0xd0 mm/kasan/generic.c:548
 insert_work+0x3d/0x330 kernel/workqueue.c:2183
 __queue_work+0xbd9/0xfe0 kernel/workqueue.c:2345
 queue_delayed_work_on+0x18b/0x280 kernel/workqueue.c:2561
 pairing_complete+0x1e7/0x2b0 net/bluetooth/mgmt.c:3451
 pairing_complete_cb+0x1ac/0x230 net/bluetooth/mgmt.c:3487
 hci_connect_cfm include/net/bluetooth/hci_core.h:2064 [inline]
 hci_conn_failed+0x24d/0x310 net/bluetooth/hci_conn.c:1275
 hci_conn_complete_evt+0x3c7/0x1040 net/bluetooth/hci_event.c:3199
 hci_event_func net/bluetooth/hci_event.c:7477 [inline]
 hci_event_packet+0x7e0/0x1200 net/bluetooth/hci_event.c:7531
 hci_rx_work+0x46a/0xe80 net/bluetooth/hci_core.c:4070
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
 worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
 kthread+0x70e/0x8a0 kernel/kthread.c:464
 ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245

Fixes: aef2aa4 ("Bluetooth: hci_event: Fix creating hci_conn object on error status")
	Reported-by: Junvyyang, Tencent Zhuque Lab <zhuque@tencent.com>
	Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
(cherry picked from commit 9e62280)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-185855
cve CVE-2026-31488
commit-author Yussuf Khalil <dev@pp3345.net>
commit aed3d04

Starting with commit 17ce8a6 ("drm/amd/display: Add dsc pre-validation in
atomic check"), amdgpu resets the CRTC state mode_changed flag to false when
recomputing the DSC configuration results in no timing change for a particular
stream.

However, this is incorrect in scenarios where a change in MST/DSC configuration
happens in the same KMS commit as another (unrelated) mode change. For example,
the integrated panel of a laptop may be configured differently (e.g., HDR
enabled/disabled) depending on whether external screens are attached. In this
case, plugging in external DP-MST screens may result in the mode_changed flag
being dropped incorrectly for the integrated panel if its DSC configuration
did not change during precomputation in pre_validate_dsc().

At this point, however, dm_update_crtc_state() has already created new streams
for CRTCs with DSC-independent mode changes. In turn,
amdgpu_dm_commit_streams() will never release the old stream, resulting in a
memory leak. amdgpu_dm_atomic_commit_tail() will never acquire a reference to
the new stream either, which manifests as a use-after-free when the stream gets
disabled later on:

BUG: KASAN: use-after-free in dc_stream_release+0x25/0x90 [amdgpu]
Write of size 4 at addr ffff88813d836524 by task kworker/9:9/29977

Workqueue: events drm_mode_rmfb_work_fn
Call Trace:
 <TASK>
 dump_stack_lvl+0x6e/0xa0
 print_address_description.constprop.0+0x88/0x320
 ? dc_stream_release+0x25/0x90 [amdgpu]
 print_report+0xfc/0x1ff
 ? srso_alias_return_thunk+0x5/0xfbef5
 ? __virt_addr_valid+0x225/0x4e0
 ? dc_stream_release+0x25/0x90 [amdgpu]
 kasan_report+0xe1/0x180
 ? dc_stream_release+0x25/0x90 [amdgpu]
 kasan_check_range+0x125/0x200
 dc_stream_release+0x25/0x90 [amdgpu]
 dc_state_destruct+0x14d/0x5c0 [amdgpu]
 dc_state_release.part.0+0x4e/0x130 [amdgpu]
 dm_atomic_destroy_state+0x3f/0x70 [amdgpu]
 drm_atomic_state_default_clear+0x8ee/0xf30
 ? drm_mode_object_put.part.0+0xb1/0x130
 __drm_atomic_state_free+0x15c/0x2d0
 atomic_remove_fb+0x67e/0x980

Since there is no reliable way of figuring out whether a CRTC has unrelated
mode changes pending at the time of DSC validation, remember the value of the
mode_changed flag from before the point where a CRTC was marked as potentially
affected by a change in DSC configuration. Reset the mode_changed flag to this
earlier value instead in pre_validate_dsc().

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/5004
Fixes: 17ce8a6 ("drm/amd/display: Add dsc pre-validation in atomic check")
	Signed-off-by: Yussuf Khalil <dev@pp3345.net>
	Reviewed-by: Harry Wentland <harry.wentland@amd.com>
	Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit cc7c712)
(cherry picked from commit aed3d04)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-183031
cve CVE-2026-31684
commit-author Ruide Cao <caoruide123@gmail.com>
commit c842743

tcf_csum_act() walks nested VLAN headers directly from skb->data when an
skb still carries in-payload VLAN tags. The current code reads
vlan->h_vlan_encapsulated_proto and then pulls VLAN_HLEN bytes without
first ensuring that the full VLAN header is present in the linear area.

If only part of an inner VLAN header is linearized, accessing
h_vlan_encapsulated_proto reads past the linear area, and the following
skb_pull(VLAN_HLEN) may violate skb invariants.

Fix this by requiring pskb_may_pull(skb, VLAN_HLEN) before accessing and
pulling each nested VLAN header. If the header still is not fully
available, drop the packet through the existing error path.

Fixes: 2ecba2d ("net: sched: act_csum: Fix csum calc for tagged packets")
	Reported-by: Yifan Wu <yifanwucs@gmail.com>
	Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Co-developed-by: Yuan Tan <yuantan098@gmail.com>
	Signed-off-by: Yuan Tan <yuantan098@gmail.com>
	Suggested-by: Xin Liu <bird@lzu.edu.cn>
	Tested-by: Ren Wei <enjou1224z@gmail.com>
	Signed-off-by: Ruide Cao <caoruide123@gmail.com>
	Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
	Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/22df2fcb49f410203eafa5d97963dd36089f4ecf.1774892775.git.caoruide123@gmail.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit c842743)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-183093
cve CVE-2026-31613
commit-author Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 3df690b

When a CREATE returns STATUS_STOPPED_ON_SYMLINK, smb2_check_message()
returns success without any length validation, leaving the symlink
parsers as the only defense against an untrusted server.

symlink_data() walks SMB 3.1.1 error contexts with the loop test "p <
end", but reads p->ErrorId at offset 4 and p->ErrorDataLength at offset
0.  When the server-controlled ErrorDataLength advances p to within 1-7
bytes of end, the next iteration will read past it.  When the matching
context is found, sym->SymLinkErrorTag is read at offset 4 from
p->ErrorContextData with no check that the symlink header itself fits.

smb2_parse_symlink_response() then bounds-checks the substitute name
using SMB2_SYMLINK_STRUCT_SIZE as the offset of PathBuffer from
iov_base.  That value is computed as sizeof(smb2_err_rsp) +
sizeof(smb2_symlink_err_rsp), which is correct only when
ErrorContextCount == 0.

With at least one error context the symlink data sits 8 bytes deeper,
and each skipped non-matching context shifts it further by 8 +
ALIGN(ErrorDataLength, 8).  The check is too short, allowing the
substitute name read to run past iov_len.  The out-of-bound heap bytes
are UTF-16-decoded into the symlink target and returned to userspace via
readlink(2).

Fix this all up by making the loops test require the full context header
to fit, rejecting sym if its header runs past end, and bound the
substitute name against the actual position of sym->PathBuffer rather
than a fixed offset.

Because sub_offs and sub_len are 16bits, the pointer math will not
overflow here with the new greater-than.

	Cc: Ronnie Sahlberg <ronniesahlberg@gmail.com>
	Cc: Shyam Prasad N <sprasad@microsoft.com>
	Cc: Tom Talpey <tom@talpey.com>
	Cc: Bharath SM <bharathsm@microsoft.com>
	Cc: linux-cifs@vger.kernel.org
	Cc: samba-technical@lists.samba.org
	Cc: stable <stable@kernel.org>
	Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Assisted-by: gregkh_clanker_t1000
	Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
	Signed-off-by: Steve French <stfrench@microsoft.com>
(cherry picked from commit 3df690b)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
…nit_with_funcs()

jira VULN-187131
cve CVE-2026-46209
commit-author Ashutosh Desai <ashutoshdesai993@gmail.com>
commit 3d4c226

drm_gem_fb_init_with_funcs() computes sub-sampled plane dimensions
using plain integer division:

  unsigned int width  = mode_cmd->width  / (i ? info->hsub : 1);
  unsigned int height = mode_cmd->height / (i ? info->vsub : 1);

However, the ioctl-level framebuffer_check() in drm_framebuffer.c uses
drm_format_info_plane_width/height() which round up dimensions via
DIV_ROUND_UP(). This inconsistency corrupts the subsequent GEM object
size check for certain pixel format and dimension combinations.

For example, with NV12 (vsub=2) and a 1-pixel-tall framebuffer the
GEM size validation path sees height=0 instead of height=1. The
expression (height - 1) then wraps to UINT_MAX as an unsigned int,
causing min_size to overflow and wrap back to a small value. A tiny
GEM object therefore passes the size guard, yet when the GPU accesses
the chroma plane it will read or write memory beyond the object's
bounds.

Fix by replacing the open-coded divisions with drm_format_info_plane_width()
and drm_format_info_plane_height(), which use DIV_ROUND_UP() and match
the calculation already used in framebuffer_check().

Fixes: 4c3dbb2 ("drm: Add GEM backed framebuffer library")
	Cc: stable@vger.kernel.org # v4.14+
	Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
	Signed-off-by: Ashutosh Desai <ashutoshdesai993@gmail.com>
	Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260420013637.457751-1-ashutoshdesai993@gmail.com
(cherry picked from commit 3d4c226)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-167075
cve-pre CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit 2f55dbe

This is a prepare patch to add cache_check_rcu, will use it with follow
patch.

	Suggested-by: NeilBrown <neilb@suse.de>
	Signed-off-by: Yang Erkun <yangerkun@huawei.com>
	Reviewed-by: Jeff Layton <jlayton@kernel.org>
	Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
(cherry picked from commit 2f55dbe)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-167075
cve CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit c224edc

rcu_read_lock/rcu_read_unlock has already provide protection for the
pointer we will reference when we call e_show. Therefore, there is no
need to obtain a cache reference to help protect cache_head.
Additionally, the .put such as expkey_put/svc_export_put will invoke
dput, which can sleep and break rcu. Stop get cache reference to fix
them all.

Fixes: ae74136 ("SUNRPC: Allow cache lookups to use RCU protection rather than the r/w spinlock")
	Suggested-by: NeilBrown <neilb@suse.de>
	Signed-off-by: Yang Erkun <yangerkun@huawei.com>
	Reviewed-by: Jeff Layton <jlayton@kernel.org>
	Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
(cherry picked from commit c224edc)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-167075
cve CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit 1b10f0b

rcu_read_lock/rcu_read_unlock has already provide protection for the
pointer we will reference when we call c_show. Therefore, there is no
need to obtain a cache reference to help protect cache_head.
Additionally, the .put such as expkey_put/svc_export_put will invoke
dput, which can sleep and break rcu. Stop get cache reference to fix
them all.

Fixes: ae74136 ("SUNRPC: Allow cache lookups to use RCU protection rather than the r/w spinlock")
	Suggested-by: NeilBrown <neilb@suse.de>
	Signed-off-by: Yang Erkun <yangerkun@huawei.com>
	Reviewed-by: Jeff Layton <jlayton@kernel.org>
	Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
(cherry picked from commit 1b10f0b)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-167075
cve CVE-2024-53216
commit-author Yang Erkun <yangerkun@huawei.com>
commit 2530766

We can access exp->ex_stats or exp->ex_uuid in rcu context(c_show and
e_show). All these resources should be released using kfree_rcu. Fix this
by using call_rcu, clean them all after a rcu grace period.

==================================================================
BUG: KASAN: slab-use-after-free in svc_export_show+0x362/0x430 [nfsd]
Read of size 1 at addr ff11000010fdc120 by task cat/870

CPU: 1 UID: 0 PID: 870 Comm: cat Not tainted 6.12.0-rc3+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.16.1-2.fc37 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x53/0x70
 print_address_description.constprop.0+0x2c/0x3a0
 print_report+0xb9/0x280
 kasan_report+0xae/0xe0
 svc_export_show+0x362/0x430 [nfsd]
 c_show+0x161/0x390 [sunrpc]
 seq_read_iter+0x589/0x770
 seq_read+0x1e5/0x270
 proc_reg_read+0xe1/0x140
 vfs_read+0x125/0x530
 ksys_read+0xc1/0x160
 do_syscall_64+0x5f/0x170
 entry_SYSCALL_64_after_hwframe+0x76/0x7e

Allocated by task 830:
 kasan_save_stack+0x20/0x40
 kasan_save_track+0x14/0x30
 __kasan_kmalloc+0x8f/0xa0
 __kmalloc_node_track_caller_noprof+0x1bc/0x400
 kmemdup_noprof+0x22/0x50
 svc_export_parse+0x8a9/0xb80 [nfsd]
 cache_do_downcall+0x71/0xa0 [sunrpc]
 cache_write_procfs+0x8e/0xd0 [sunrpc]
 proc_reg_write+0xe1/0x140
 vfs_write+0x1a5/0x6d0
 ksys_write+0xc1/0x160
 do_syscall_64+0x5f/0x170
 entry_SYSCALL_64_after_hwframe+0x76/0x7e

Freed by task 868:
 kasan_save_stack+0x20/0x40
 kasan_save_track+0x14/0x30
 kasan_save_free_info+0x3b/0x60
 __kasan_slab_free+0x37/0x50
 kfree+0xf3/0x3e0
 svc_export_put+0x87/0xb0 [nfsd]
 cache_purge+0x17f/0x1f0 [sunrpc]
 nfsd_destroy_serv+0x226/0x2d0 [nfsd]
 nfsd_svc+0x125/0x1e0 [nfsd]
 write_threads+0x16a/0x2a0 [nfsd]
 nfsctl_transaction_write+0x74/0xa0 [nfsd]
 vfs_write+0x1a5/0x6d0
 ksys_write+0xc1/0x160
 do_syscall_64+0x5f/0x170
 entry_SYSCALL_64_after_hwframe+0x76/0x7e

Fixes: ae74136 ("SUNRPC: Allow cache lookups to use RCU protection rather than the r/w spinlock")
	Signed-off-by: Yang Erkun <yangerkun@huawei.com>
	Reviewed-by: NeilBrown <neilb@suse.de>
	Reviewed-by: Jeff Layton <jlayton@kernel.org>
	Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
(cherry picked from commit 2530766)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
@bmastbergen
bmastbergen force-pushed the {ciq_kernel_automation}_ciqlts9_6 branch from 0345ff3 to b6951a1 Compare July 28, 2026 17:22
@github-actions

Copy link
Copy Markdown

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

@github-actions

Copy link
Copy Markdown

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit f055f421960 (nfsd: no need get cache ref when protected by rcu) references upstream commit
    c224edca7af0 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    48db892356d NFSD: Defer sub-object cleanup in export put callbacks (Chuck Lever) (CVE-2026-31404)
  • ❌ PR commit f055f421960 (nfsd: no need get cache ref when protected by rcu) references CVE-2024-53216 but
    upstream commit c224edca7af0 has no CVE assigned

  • ⚠️ PR commit 3daae55e682 (SUNRPC: no need get cache ref when protected by rcu) references upstream commit
    1b10f0b603c0 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:

    48db892356d NFSD: Defer sub-object cleanup in export put callbacks (Chuck Lever) (CVE-2026-31404)
  • ❌ PR commit 3daae55e682 (SUNRPC: no need get cache ref when protected by rcu) references CVE-2024-53216 but
    upstream commit 1b10f0b603c0 has no CVE assigned

  • ❌ PR commit b6951a1c8de (nfsd: fix UAF when access ex_uuid or ex_stats) references CVE-2024-53216 but
    upstream commit 2530766492ec has no CVE assigned

This is an automated message from the kernel commit checker workflow.

@github-actions

Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit b6951a1c8de (nfsd: fix UAF when access ex_uuid or ex_stats) → upstream 2530766492ec
    Differences found:
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -348,4 +348,4 @@
-					     EXP_STATS_COUNTERS_NUM);
+					    EXP_STATS_COUNTERS_NUM);
 }
 
 static void svc_export_put(struct kref *ref)

This is an automated interdiff check for backported commits.

@github-actions

Copy link
Copy Markdown

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

@bmastbergen

Copy link
Copy Markdown
Collaborator

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit f055f421960 (nfsd: no need get cache ref when protected by rcu) references upstream commit
    c224edca7af0 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    48db892356d NFSD: Defer sub-object cleanup in export put callbacks (Chuck Lever) (CVE-2026-31404)
  • ❌ PR commit f055f421960 (nfsd: no need get cache ref when protected by rcu) references CVE-2024-53216 but
    upstream commit c224edca7af0 has no CVE assigned
  • ⚠️ PR commit 3daae55e682 (SUNRPC: no need get cache ref when protected by rcu) references upstream commit
    1b10f0b603c0 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    48db892356d NFSD: Defer sub-object cleanup in export put callbacks (Chuck Lever) (CVE-2026-31404)
  • ❌ PR commit 3daae55e682 (SUNRPC: no need get cache ref when protected by rcu) references CVE-2024-53216 but
    upstream commit 1b10f0b603c0 has no CVE assigned
  • ❌ PR commit b6951a1c8de (nfsd: fix UAF when access ex_uuid or ex_stats) references CVE-2024-53216 but
    upstream commit 2530766492ec has no CVE assigned

This is an automated message from the kernel commit checker workflow.

True that these 3 commits are not associated with CVE-2024-53216 according to the vulns database. We've picked them based on this lkml thread:
https://lore.kernel.org/all/20241216142156.4133267-1-yangerkun@huaweicloud.com/

Also, we are intentionally not picking 48db892 as it just gets reverted later:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/nfsd?id=516403d4d85607fdef3ca41d4a56b54e5566fa9a

@ciq-kernel-automation ciq-kernel-automation Bot changed the title [ciqlts9_6] Multiple patches tested (8 commits) [ciqlts9_6] Multiple patches tested (11 commits) Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI)

Development

Successfully merging this pull request may close these issues.

2 participants