Skip to content

Conversation

@shreeya-patel98
Copy link
Collaborator

@shreeya-patel98 shreeya-patel98 commented Nov 13, 2025

Commits

    NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()
    
    jira VULN-136578
    cve CVE-2025-39730
    commit-author Trond Myklebust <trond.myklebust@hammerspace.com>
    commit ef93a685e01a281b5e2a25ce4e3428cf9371a205
    

    vsock/virtio: Validate length in packet header before skb_put()
    
    jira VULN-136554
    cve CVE-2025-39718
    commit-author Will Deacon <will@kernel.org>
    commit 0dab92484474587b82e8e0455839eaf5ac7bf894
 
    

    ipv6: mcast: Delay put pmc->idev in mld_del_delrec()
    
    jira VULN-131124
    cve CVE-2025-38550
    commit-author Yue Haibing <yuehaibing@huawei.com>
    commit ae3264a25a4635531264728859dbe9c659fad554
    
    smb: client: fix use-after-free in cifs_oplock_break
    
    jira VULN-131074
    cve CVE-2025-38527
    commit-author Wang Zhaolong <wangzhaolong@huaweicloud.com>
    commit 705c79101ccf9edea5a00d761491a03ced314210
    tcp: Fix use-after-free of nreq in reqsk_timer_handler().
    
    jira VULN-8642
    cve-bf CVE-2024-50154
    commit-author Kuniyuki Iwashima <kuniyu@amazon.com>
    commit c31e72d021db2714df03df6c42855a1db592716c

    tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().
    
    jira VULN-8642
    cve CVE-2024-50154
    commit-author Kuniyuki Iwashima <kuniyu@amazon.com>
    commit e8c526f2bdf1845bedaf6a478816a3d06fa78b8f
    
    mm: kmem: fix a NULL pointer dereference in obj_stock_flush_required()
    
    jira VULN-155868
    cve CVE-2023-53401
    commit-author Roman Gushchin <roman.gushchin@linux.dev>
    commit 3b8abb3239530c423c0b97e42af7f7e856e1ee96
    crypto: seqiv - Handle EBUSY correctly
    
    jira VULN-155737
    cve CVE-2023-53373
    commit-author Herbert Xu <herbert@gondor.apana.org.au>
    commit 32e62025e5e52fbe4812ef044759de7010b15dbc
  
   pstore/ram: Check start of empty przs during init
   
   jira VULN-155104
   cve CVE-2023-53331
   commit-author Enlin Mu <enlin.mu@unisoc.com>
   commit fe8c3623ab06603eb760444a032d426542212021
   
  fs: fix UAF/GPF bug in nilfs_mdt_destroy
  
  jira VULN-155288
  cve CVE-2022-50367
  commit-author Dongliang Mu <mudongliangabcd@gmail.com>
  commit 2e488f13755ffbb60f307e991b27024716a33b29

Kernel Build Log

/mnt/scratch/workspace/ciqlts9_4/ciqlts9_4-lts94-9-2025_07_28__13_26_58/kernel-src-tree
Running make mrproper...
 CLEAN   arch/x86/boot/compressed
 CLEAN   arch/x86/boot
 CLEAN   arch/x86/crypto
 CLEAN   arch/x86/entry/vdso
 CLEAN   arch/x86/kernel/cpu
 CLEAN   arch/x86/kernel
 CLEAN   arch/x86/kvm
 CLEAN   arch/x86/purgatory
 CLEAN   arch/x86/realmode/rm
 CLEAN   arch/x86/tools
 CLEAN   arch/x86/lib
 CLEAN   certs
 CLEAN   crypto/asymmetric_keys
 CLEAN   drivers/firmware/efi/libstub
 CLEAN   drivers/gpu/drm/radeon
 CLEAN   drivers/scsi
 CLEAN   drivers/tty/vt
 CLEAN   drivers/video/logo
 CLEAN   kernel/debug/kdb
 CLEAN   kernel
 CLEAN   lib/raid6
 CLEAN   lib
 CLEAN   net/wireless
 CLEAN   security/selinux
 CLEAN   usr/include
 CLEAN   usr
 CLEAN   vmlinux.symvers modules-only.symvers modules.builtin modules.builtin.modinfo
 CLEAN   scripts/basic
 CLEAN   scripts/genksyms
 CLEAN   scripts/kconfig
 CLEAN   scripts/mod
 CLEAN   scripts/selinux/genheaders
 CLEAN   scripts/selinux/mdp
 CLEAN   scripts
 CLEAN   include/config include/generated arch/x86/include/generated .config .config.old .version Module.symvers certs/signing_key.pem certs/signing_key.x509 certs/x509.genkey
[TIMER]{MRPROPER}: 8s
x86_64 architecture detected, copying config
'configs/kernel-x86_64-rhel.config' -> '.config'
Setting Local Version for build
CONFIG_LOCALVERSION="-shreeya_ciqlts9_4-13fbf7829272"
Making olddefconfig
 HOSTCC  scripts/basic/fixdep
 HOSTCC  scripts/kconfig/conf.o
 HOSTCC  scripts/kconfig/confdata.o
 HOSTCC  scripts/kconfig/expr.o
 <--snip-->
 SIGN    /lib/modules/5.14.0-shreeya_ciqlts9_4-13fbf7829272+/kernel/sound/xen/snd_xen_front.ko
 SIGN    /lib/modules/5.14.0-shreeya_ciqlts9_4-13fbf7829272+/kernel/virt/lib/irqbypass.ko
 SIGN    /lib/modules/5.14.0-shreeya_ciqlts9_4-13fbf7829272+/kernel/sound/usb/snd-usb-audio.ko
 STRIP   /lib/modules/5.14.0-shreeya_ciqlts9_4-13fbf7829272+/kernel/sound/soc/sof/snd-sof-probes.ko
 SIGN    /lib/modules/5.14.0-shreeya_ciqlts9_4-13fbf7829272+/kernel/sound/soc/sof/snd-sof-probes.ko
 DEPMOD  /lib/modules/5.14.0-shreeya_ciqlts9_4-13fbf7829272+
[TIMER]{MODULES}: 17s
Making Install
sh ./arch/x86/boot/install.sh 5.14.0-shreeya_ciqlts9_4-13fbf7829272+ \
   arch/x86/boot/bzImage System.map "/boot"
[TIMER]{INSTALL}: 39s
Checking kABI
kABI check passed
Setting Default Kernel to /boot/vmlinuz-5.14.0-shreeya_ciqlts9_4-dd526148fa88+ and Index to 4
The default is /boot/loader/entries/d84955f323dc42758d1fc6865f813ef4-5.14.0-shreeya_ciqlts9_4-dd526148fa88+.conf with index 4 and kernel /boot/vmlinuz-5.14.0-shreeya_ciqlts9_4-dd526148fa88+
The default is /boot/loader/entries/d84955f323dc42758d1fc6865f813ef4-5.14.0-shreeya_ciqlts9_4-dd526148fa88+.conf with index 4 and kernel /boot/vmlinuz-5.14.0-shreeya_ciqlts9_4-dd526148fa88+
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
Hopefully Grub2.0 took everything ... rebooting after time metrices
[TIMER]{MRPROPER}: 8s
[TIMER]{BUILD}: 3177s
[TIMER]{MODULES}: 17s
[TIMER]{INSTALL}: 39s
[TIMER]{TOTAL} 3250s
Rebooting in 10 seconds

kernel-build.log

Testing

shreeya@spatel-dev-bom ~/c/w/c/ciqlts9_4> grep -a ^ok kselftest-after.log | wc -l
327
shreeya@spatel-dev-bom ~/c/w/c/ciqlts9_4> grep -a ^ok kselftest-before.log | wc -l
328
shreeya@spatel-dev-bom ~/c/w/c/ciqlts9_4> 

kselftest-after.log
kselftest-before.log

jira VULN-155288
cve CVE-2022-50367
commit-author Dongliang Mu <mudongliangabcd@gmail.com>
commit 2e488f1

In alloc_inode, inode_init_always() could return -ENOMEM if
security_inode_alloc() fails, which causes inode->i_private
uninitialized. Then nilfs_is_metadata_file_inode() returns
true and nilfs_free_inode() wrongly calls nilfs_mdt_destroy(),
which frees the uninitialized inode->i_private
and leads to crashes(e.g., UAF/GPF).

Fix this by moving security_inode_alloc just prior to
this_cpu_inc(nr_inodes)

Link: https://lkml.kernel.org/r/CAFcO6XOcf1Jj2SeGt=jJV59wmhESeSKpfR0omdFRq+J9nD1vfQ@mail.gmail.com
	Reported-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
	Reported-by: Hao Sun <sunhao.th@gmail.com>
	Reported-by: Jiacheng Xu <stitch@zju.edu.cn>
	Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
	Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
	Cc: Al Viro <viro@zeniv.linux.org.uk>
	Cc: stable@vger.kernel.org
	Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 2e488f1)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
@shreeya-patel98 shreeya-patel98 requested a review from a team November 13, 2025 11:30
@github-actions
Copy link

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit aa8abbbb9268 (mm: fix zswap writeback race condition) references upstream commit
    04fc7816089c which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    e3b63e966cac mm: zswap: fix missing folio cleanup in writeback race path (Yosry Ahmed)
  • ⚠️ PR commit f314d0f8ae57 (tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().) references upstream commit
    e8c526f2bdf1 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    c31e72d021db tcp: Fix use-after-free of nreq in reqsk_timer_handler(). (Kuniyuki Iwashima)

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

jira VULN-155104
cve CVE-2023-53331
commit-author Enlin Mu <enlin.mu@unisoc.com>
commit fe8c362

After commit 3069637 ("pstore/ram: Do not treat empty buffers as
valid"), initialization would assume a prz was valid after seeing that
the buffer_size is zero (regardless of the buffer start position). This
unchecked start value means it could be outside the bounds of the buffer,
leading to future access panics when written to:

 sysdump_panic_event+0x3b4/0x5b8
 atomic_notifier_call_chain+0x54/0x90
 panic+0x1c8/0x42c
 die+0x29c/0x2a8
 die_kernel_fault+0x68/0x78
 __do_kernel_fault+0x1c4/0x1e0
 do_bad_area+0x40/0x100
 do_translation_fault+0x68/0x80
 do_mem_abort+0x68/0xf8
 el1_da+0x1c/0xc0
 __raw_writeb+0x38/0x174
 __memcpy_toio+0x40/0xac
 persistent_ram_update+0x44/0x12c
 persistent_ram_write+0x1a8/0x1b8
 ramoops_pstore_write+0x198/0x1e8
 pstore_console_write+0x94/0xe0
 ...

To avoid this, also check if the prz start is 0 during the initialization
phase. If not, the next prz sanity check case will discover it (start >
size) and zap the buffer back to a sane state.

Fixes: 3069637 ("pstore/ram: Do not treat empty buffers as valid")
	Cc: Yunlong Xing <yunlong.xing@unisoc.com>
	Cc: stable@vger.kernel.org
	Signed-off-by: Enlin Mu <enlin.mu@unisoc.com>
Link: https://lore.kernel.org/r/20230801060432.1307717-1-yunlong.xing@unisoc.com
[kees: update commit log with backtrace and clarifications]
	Signed-off-by: Kees Cook <keescook@chromium.org>
(cherry picked from commit fe8c362)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-155737
cve CVE-2023-53373
commit-author Herbert Xu <herbert@gondor.apana.org.au>
commit 32e6202

As it is seqiv only handles the special return value of EINPROGERSS,
which means that in all other cases it will free data related to the
request.

However, as the caller of seqiv may specify MAY_BACKLOG, we also need
to expect EBUSY and treat it in the same way.  Otherwise backlogged
requests will trigger a use-after-free.

Fixes: 0a27032 ("[CRYPTO] seqiv: Add Sequence Number IV Generator")
	Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 32e6202)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-155868
cve CVE-2023-53401
commit-author Roman Gushchin <roman.gushchin@linux.dev>
commit 3b8abb3

KCSAN found an issue in obj_stock_flush_required():
stock->cached_objcg can be reset between the check and dereference:

==================================================================
BUG: KCSAN: data-race in drain_all_stock / drain_obj_stock

write to 0xffff888237c2a2f8 of 8 bytes by task 19625 on cpu 0:
 drain_obj_stock+0x408/0x4e0 mm/memcontrol.c:3306
 refill_obj_stock+0x9c/0x1e0 mm/memcontrol.c:3340
 obj_cgroup_uncharge+0xe/0x10 mm/memcontrol.c:3408
 memcg_slab_free_hook mm/slab.h:587 [inline]
 __cache_free mm/slab.c:3373 [inline]
 __do_kmem_cache_free mm/slab.c:3577 [inline]
 kmem_cache_free+0x105/0x280 mm/slab.c:3602
 __d_free fs/dcache.c:298 [inline]
 dentry_free fs/dcache.c:375 [inline]
 __dentry_kill+0x422/0x4a0 fs/dcache.c:621
 dentry_kill+0x8d/0x1e0
 dput+0x118/0x1f0 fs/dcache.c:913
 __fput+0x3bf/0x570 fs/file_table.c:329
 ____fput+0x15/0x20 fs/file_table.c:349
 task_work_run+0x123/0x160 kernel/task_work.c:179
 resume_user_mode_work include/linux/resume_user_mode.h:49 [inline]
 exit_to_user_mode_loop+0xcf/0xe0 kernel/entry/common.c:171
 exit_to_user_mode_prepare+0x6a/0xa0 kernel/entry/common.c:203
 __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
 syscall_exit_to_user_mode+0x26/0x140 kernel/entry/common.c:296
 do_syscall_64+0x4d/0xc0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x63/0xcd

read to 0xffff888237c2a2f8 of 8 bytes by task 19632 on cpu 1:
 obj_stock_flush_required mm/memcontrol.c:3319 [inline]
 drain_all_stock+0x174/0x2a0 mm/memcontrol.c:2361
 try_charge_memcg+0x6d0/0xd10 mm/memcontrol.c:2703
 try_charge mm/memcontrol.c:2837 [inline]
 mem_cgroup_charge_skmem+0x51/0x140 mm/memcontrol.c:7290
 sock_reserve_memory+0xb1/0x390 net/core/sock.c:1025
 sk_setsockopt+0x800/0x1e70 net/core/sock.c:1525
 udp_lib_setsockopt+0x99/0x6c0 net/ipv4/udp.c:2692
 udp_setsockopt+0x73/0xa0 net/ipv4/udp.c:2817
 sock_common_setsockopt+0x61/0x70 net/core/sock.c:3668
 __sys_setsockopt+0x1c3/0x230 net/socket.c:2271
 __do_sys_setsockopt net/socket.c:2282 [inline]
 __se_sys_setsockopt net/socket.c:2279 [inline]
 __x64_sys_setsockopt+0x66/0x80 net/socket.c:2279
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd

value changed: 0xffff8881382d52c0 -> 0xffff888138893740

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 19632 Comm: syz-executor.0 Not tainted 6.3.0-rc2-syzkaller-00387-g534293368afa #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/02/2023

Fix it by using READ_ONCE()/WRITE_ONCE() for all accesses to
stock->cached_objcg.

Link: https://lkml.kernel.org/r/20230502160839.361544-1-roman.gushchin@linux.dev
Fixes: bf4f059 ("mm: memcg/slab: obj_cgroup API")
	Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev>
	Reported-by: syzbot+774c29891415ab0fd29d@syzkaller.appspotmail.com
	Reported-by: Dmitry Vyukov <dvyukov@google.com>
  Link: https://lore.kernel.org/linux-mm/CACT4Y+ZfucZhM60YPphWiCLJr6+SGFhT+jjm8k1P-a_8Kkxsjg@mail.gmail.com/T/#t
	Reviewed-by: Yosry Ahmed <yosryahmed@google.com>
	Acked-by: Shakeel Butt <shakeelb@google.com>
	Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
	Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 3b8abb3)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-8642
cve CVE-2024-50154
commit-author Kuniyuki Iwashima <kuniyu@amazon.com>
commit e8c526f

Martin KaFai Lau reported use-after-free [0] in reqsk_timer_handler().

  """
  We are seeing a use-after-free from a bpf prog attached to
  trace_tcp_retransmit_synack. The program passes the req->sk to the
  bpf_sk_storage_get_tracing kernel helper which does check for null
  before using it.
  """

The commit 83fccfc ("inet: fix potential deadlock in
reqsk_queue_unlink()") added timer_pending() in reqsk_queue_unlink() not
to call del_timer_sync() from reqsk_timer_handler(), but it introduced a
small race window.

Before the timer is called, expire_timers() calls detach_timer(timer, true)
to clear timer->entry.pprev and marks it as not pending.

If reqsk_queue_unlink() checks timer_pending() just after expire_timers()
calls detach_timer(), TCP will miss del_timer_sync(); the reqsk timer will
continue running and send multiple SYN+ACKs until it expires.

The reported UAF could happen if req->sk is close()d earlier than the timer
expiration, which is 63s by default.

The scenario would be

  1. inet_csk_complete_hashdance() calls inet_csk_reqsk_queue_drop(),
     but del_timer_sync() is missed

  2. reqsk timer is executed and scheduled again

  3. req->sk is accept()ed and reqsk_put() decrements rsk_refcnt, but
     reqsk timer still has another one, and inet_csk_accept() does not
     clear req->sk for non-TFO sockets

  4. sk is close()d

  5. reqsk timer is executed again, and BPF touches req->sk

Let's not use timer_pending() by passing the caller context to
__inet_csk_reqsk_queue_drop().

Note that reqsk timer is pinned, so the issue does not happen in most
use cases. [1]

[0]
BUG: KFENCE: use-after-free read in bpf_sk_storage_get_tracing+0x2e/0x1b0

Use-after-free read at 0x00000000a891fb3a (in kfence-#1):
bpf_sk_storage_get_tracing+0x2e/0x1b0
bpf_prog_5ea3e95db6da0438_tcp_retransmit_synack+0x1d20/0x1dda
bpf_trace_run2+0x4c/0xc0
tcp_rtx_synack+0xf9/0x100
reqsk_timer_handler+0xda/0x3d0
run_timer_softirq+0x292/0x8a0
irq_exit_rcu+0xf5/0x320
sysvec_apic_timer_interrupt+0x6d/0x80
asm_sysvec_apic_timer_interrupt+0x16/0x20
intel_idle_irq+0x5a/0xa0
cpuidle_enter_state+0x94/0x273
cpu_startup_entry+0x15e/0x260
start_secondary+0x8a/0x90
secondary_startup_64_no_verify+0xfa/0xfb

kfence-#1: 0x00000000a72cc7b6-0x00000000d97616d9, size=2376, cache=TCPv6

allocated by task 0 on cpu 9 at 260507.901592s:
sk_prot_alloc+0x35/0x140
sk_clone_lock+0x1f/0x3f0
inet_csk_clone_lock+0x15/0x160
tcp_create_openreq_child+0x1f/0x410
tcp_v6_syn_recv_sock+0x1da/0x700
tcp_check_req+0x1fb/0x510
tcp_v6_rcv+0x98b/0x1420
ipv6_list_rcv+0x2258/0x26e0
napi_complete_done+0x5b1/0x2990
mlx5e_napi_poll+0x2ae/0x8d0
net_rx_action+0x13e/0x590
irq_exit_rcu+0xf5/0x320
common_interrupt+0x80/0x90
asm_common_interrupt+0x22/0x40
cpuidle_enter_state+0xfb/0x273
cpu_startup_entry+0x15e/0x260
start_secondary+0x8a/0x90
secondary_startup_64_no_verify+0xfa/0xfb

freed by task 0 on cpu 9 at 260507.927527s:
rcu_core_si+0x4ff/0xf10
irq_exit_rcu+0xf5/0x320
sysvec_apic_timer_interrupt+0x6d/0x80
asm_sysvec_apic_timer_interrupt+0x16/0x20
cpuidle_enter_state+0xfb/0x273
cpu_startup_entry+0x15e/0x260
start_secondary+0x8a/0x90
secondary_startup_64_no_verify+0xfa/0xfb

Fixes: 83fccfc ("inet: fix potential deadlock in reqsk_queue_unlink()")
	Reported-by: Martin KaFai Lau <martin.lau@kernel.org>
Closes: https://lore.kernel.org/netdev/eb6684d0-ffd9-4bdc-9196-33f690c25824@linux.dev/
Link: https://lore.kernel.org/netdev/b55e2ca0-42f2-4b7c-b445-6ffd87ca74a0@linux.dev/ [1]
	Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
	Reviewed-by: Eric Dumazet <edumazet@google.com>
	Reviewed-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20241014223312.4254-1-kuniyu@amazon.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit e8c526f)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-8642
cve-bf CVE-2024-50154
commit-author Kuniyuki Iwashima <kuniyu@amazon.com>
commit c31e72d

The cited commit replaced inet_csk_reqsk_queue_drop_and_put() with
__inet_csk_reqsk_queue_drop() and reqsk_put() in reqsk_timer_handler().

Then, oreq should be passed to reqsk_put() instead of req; otherwise
use-after-free of nreq could happen when reqsk is migrated but the
retry attempt failed (e.g. due to timeout).

Let's pass oreq to reqsk_put().

Fixes: e8c526f ("tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().")
	Reported-by: Liu Jian <liujian56@huawei.com>
Closes: https://lore.kernel.org/netdev/1284490f-9525-42ee-b7b8-ccadf6606f6d@huawei.com/
	Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
	Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
	Reviewed-by: Liu Jian <liujian56@huawei.com>
	Reviewed-by: Eric Dumazet <edumazet@google.com>
	Reviewed-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20241123174236.62438-1-kuniyu@amazon.com
	Signed-off-by: Paolo Abeni <pabeni@redhat.com>

(cherry picked from commit c31e72d)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-131074
cve CVE-2025-38527
commit-author Wang Zhaolong <wangzhaolong@huaweicloud.com>
commit 705c791

A race condition can occur in cifs_oplock_break() leading to a
use-after-free of the cinode structure when unmounting:

  cifs_oplock_break()
    _cifsFileInfo_put(cfile)
      cifsFileInfo_put_final()
        cifs_sb_deactive()
          [last ref, start releasing sb]
            kill_sb()
              kill_anon_super()
                generic_shutdown_super()
                  evict_inodes()
                    dispose_list()
                      evict()
                        destroy_inode()
                          call_rcu(&inode->i_rcu, i_callback)
    spin_lock(&cinode->open_file_lock)  <- OK
                            [later] i_callback()
                              cifs_free_inode()
                                kmem_cache_free(cinode)
    spin_unlock(&cinode->open_file_lock)  <- UAF
    cifs_done_oplock_break(cinode)       <- UAF

The issue occurs when umount has already released its reference to the
superblock. When _cifsFileInfo_put() calls cifs_sb_deactive(), this
releases the last reference, triggering the immediate cleanup of all
inodes under RCU. However, cifs_oplock_break() continues to access the
cinode after this point, resulting in use-after-free.

Fix this by holding an extra reference to the superblock during the
entire oplock break operation. This ensures that the superblock and
its inodes remain valid until the oplock break completes.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=220309
Fixes: b98749c ("CIFS: keep FileInfo handle live during oplock break")
	Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
	Signed-off-by: Wang Zhaolong <wangzhaolong@huaweicloud.com>
	Signed-off-by: Steve French <stfrench@microsoft.com>
(cherry picked from commit 705c791)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-131124
cve CVE-2025-38550
commit-author Yue Haibing <yuehaibing@huawei.com>
commit ae3264a

pmc->idev is still used in ip6_mc_clear_src(), so as mld_clear_delrec()
does, the reference should be put after ip6_mc_clear_src() return.

Fixes: 63ed8de ("mld: add mc_lock for protecting per-interface mld data")
	Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Link: https://patch.msgid.link/20250714141957.3301871-1-yuehaibing@huawei.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit ae3264a)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-136554
cve CVE-2025-39718
commit-author Will Deacon <will@kernel.org>
commit 0dab924

When receiving a vsock packet in the guest, only the virtqueue buffer
size is validated prior to virtio_vsock_skb_rx_put(). Unfortunately,
virtio_vsock_skb_rx_put() uses the length from the packet header as the
length argument to skb_put(), potentially resulting in SKB overflow if
the host has gone wonky.

Validate the length as advertised by the packet header before calling
virtio_vsock_skb_rx_put().

	Cc: <stable@vger.kernel.org>
Fixes: 71dc9ec ("virtio/vsock: replace virtio_vsock_pkt with sk_buff")
	Signed-off-by: Will Deacon <will@kernel.org>
Message-Id: <20250717090116.11987-3-will@kernel.org>
	Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
	Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
(cherry picked from commit 0dab924)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira VULN-136578
cve CVE-2025-39730
commit-author Trond Myklebust <trond.myklebust@hammerspace.com>
commit ef93a68

The function needs to check the minimal filehandle length before it can
access the embedded filehandle.

	Reported-by: zhangjian <zhangjian496@huawei.com>
Fixes: 20fa190 ("nfs: add export operations")
	Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
(cherry picked from commit ef93a68)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
@shreeya-patel98
Copy link
Collaborator Author

Removed aa8abbbb9268 (mm: fix zswap writeback race condition) commit for now as there were conflicts when applying it's fixes patch

@bmastbergen bmastbergen self-requested a review November 13, 2025 16:43
Copy link
Collaborator

@bmastbergen bmastbergen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content looks good. One bookkeeping tweak:

brett@iconium ~/ciq/kernel-src-tree-tools
 % python ./check_kernel_commits.py --repo /home/brett/ciq/kernel-src-tree --pr_branch origin/{shreeya}_ciqlts9_4 --base_branch origin/ciqlts9_4 --check-cves
[CVE-MISSING] PR commit 4c2efe4adee3 (tcp: Fix use-after-free of nreq in
              reqsk_timer_handler().) does not reference a CVE but upstream
              commit c31e72d021db is associated with CVE-2024-53206

https://ciqinc.atlassian.net/browse/VULN-8540

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.

4 participants