Skip to content

[LTS 8.6] CVE-2024-58002, CVE-2025-40248, CVE-2022-48786, CVE-2025-22026#996

Open
pvts-mat wants to merge 10 commits intoctrliq:ciqlts8_6from
pvts-mat:ciqlts8_6-CVE-batch-25
Open

[LTS 8.6] CVE-2024-58002, CVE-2025-40248, CVE-2022-48786, CVE-2025-22026#996
pvts-mat wants to merge 10 commits intoctrliq:ciqlts8_6from
pvts-mat:ciqlts8_6-CVE-batch-25

Conversation

@pvts-mat
Copy link
Contributor

@pvts-mat pvts-mat commented Mar 20, 2026

[LTS 8.6]

CVE-2024-58002 VULN-53459
CVE-2025-40248 VULN-160776
CVE-2022-48786 VULN-32672
CVE-2025-22026 VULN-64890

Commits

CVE-2024-58002

media: uvcvideo: Set error_idx during ctrl_commit errors

jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 6350d6a4ed487d16a3a021f76a7edcb9cb60fdbf
upstream-diff |
  - Modified the `uvc_ioctl_s_ctrl()' function body to align with the new
    signature of `uvc_ctrl_commit()' it is using. A throwaway object
    `xctrls' is created on stack to encapsulate `xctrl' formerly passed to
    `uvc_ctrl_commit()' directly. This adaptation was missing from the
    backported commit, because at the moment of its introduction the
    `uvc_ioctl_s_ctrl()' function was no longer present, removed in
    0c6bcbdfefa83b8a1e9659b3c127758dce0fe7ac ("media: uvcvideo: Remove
    s_ctrl and g_ctrl"), which was not backported to LTS 8.6.
  - Solved the context conflict stemming from the missing
    ee929d5a10ca433a1c21b9aaeb70a67c5507c101
media: uvcvideo: Avoid invalid memory access

jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit f0577b1b6394f954903fcc67e12fe9e7001dafd6
media: uvcvideo: Avoid returning invalid controls

jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 414d3b49d9fd4a0bb16a13d929027847fd094f3f
media: uvcvideo: Refactor iterators

jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 64627daf0c5f7838111f52bbbd1a597cb5d6871a
media: uvcvideo: Only save async fh if success

jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit d9fecd096f67a4469536e040a8a10bbfb665918b
media: uvcvideo: Remove dangling pointers

jira VULN-53459
cve CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 221cd51efe4565501a3dbf04cc011b537dcce7fb
upstream-diff Used linux-5.15.y backport
  117f7a2975baa4b7d702d3f4830d5a4ebd0c6d50 as the base because of the
  missing backport of 54da6a0924311c7cf5015533991e44fb8eb12773 which
  changed the locking scheme used in the upstream version. Resolved
  context conflicts around the `uvc_ctrl_cleanup_fh()' function

This solution is similar to the one in

The difference is the first prerequisite media: uvcvideo: Set error_idx during ctrl_commit errors which all those versions were lucky to have backported already. It required some manual stitching in the uvc_ioctl_s_ctrl() function. Backporting 0c6bcbd was considered, which would avoid the problem of modifying uvc_ioctl_s_ctrl(), but it was not clear whether the basis for this commit holds true for LTS 8.6 (from the commit's message):

If we do not implement these callbacks the framework will call the
ext_ctrl callbaks instead, which are a superset of this functions.

Adapting uvc_ioctl_s_ctrl() to the 6350d6a change was easier, faster and less risky than establishing how the framework works in LTS 8.6.

The following two commits

  • media: uvcvideo: Avoid invalid memory access,
  • media: uvcvideo: Avoid returning invalid controls

are not really prerequisites, but the bugfixes for the media: uvcvideo: Set error_idx during ctrl_commit errors prerequisite.

CVE-2025-40248 (+ CVE-2022-48786)

vsock: remove vsock from connected table when connect is interrupted by a signal

jira VULN-32672
cve CVE-2022-48786
commit-author Seth Forshee <sforshee@digitalocean.com>
commit b9208492fcaecff8f43915529ae34b3bcb03877c
vsock: avoid to close connected socket after the timeout

jira VULN-160776
cve-pre CVE-2025-40248
commit-author Zhuang Shengen <zhuangshengen@huawei.com>
commit 6d4486efe9c69626cab423456169e250a5cd3af5o
vsock: Ignore signal/timeout on connect() if already established

jira VULN-160776
cve CVE-2025-40248
commit-author Michal Luczaj <mhal@rbox.co>
commit 002541ef650b742a198e4be363881439bb9d86b4

The vsock: remove vsock from connected table when connect is interrupted by a signal commit was used as prerequisite for CVE-2025-40248, but it had its own CVE.

CVE-2025-22026

nfsd: don't ignore the return code of svc_proc_register()

jira VULN-64890
cve CVE-2025-22026
commit-author Jeff Layton <jlayton@kernel.org>
commit 930b64ca0c511521f0abdd1d57ce52b2a6e3476b
upstream-diff Ignored cherry-pick of the upstrem fix - the LTS 8.6 nfsd
  codebase was too distinct from the upstream for auto merging to be
  useful in any way. Backported checking of the `svc_proc_register()' exit
  code manually:
  fs/nfsd/stats.c
        Modified function `nfsd_stat_init()' instead of
        `nfsd_proc_stat_init()' because it was renamed in the
        non-backported commit 93483ac5fec62cc1de166051b219d953bb5e4ef4.
  fs/nfsd/stats.h
        Like above
  fs/nfsd/nfsctl.c
        - Modified `init_nfsd()' where `nfsd_stat_init()' is actually used
          in LTS 8.6 instead of `nfsd_net_init()', where this function
          call (named `nfsd_proc_stat_init()' at that time) was moved in
          the non-backported commit
          93483ac5fec62cc1de166051b219d953bb5e4ef4.
        - Ignored the `percpu_counter_destroy_many()' cleanup not
          applicable to the `init_nfsd()' function. Included in the exit
          path instead the `nfsd4_exit_pnfs()' call with the use of newly
          introduced label `out_free_pnfs'.

kABI check: passed

[0/1] kabi_check_kernel	Check ABI of kernel [ciqlts8_6-CVE-batch-25]	_kabi_check_kernel__x86_64--test--ciqlts8_6-CVE-batch-25
+ dist_git_version=el-8.6
+ local_version=ciqlts8_6-CVE-batch-25
+ arch=x86_64
+ user=pvts
+ buildmachine=x86_64--build--ciqlts8_6
+ virsh_timeout=600
+ ssh_daemon_wait=20
+ src_dir=/mnt/code/kernel-dist-git-el-8.6
+ build_dir=/mnt/build_files/kernel-src-tree-ciqlts8_6-CVE-batch-25
+ sudo chmod +x /data/src/ctrliq-github-haskell/kernel-dist-git-el-8.6/SOURCES/check-kabi
+ ninja-back/virssh.xsh --max 8 --shutdown-on-success --shutdown-on-failure --timeout 600 --ssh-daemon-wait 20 pvts x86_64--build--ciqlts8_6 ''\''/mnt/code/kernel-dist-git-el-8.6/SOURCES/check-kabi'\'' -k '\''/mnt/code/kernel-dist-git-el-8.6/SOURCES/Module.kabi_x86_64'\'' -s '\''/mnt/build_files/kernel-src-tree-ciqlts8_6-CVE-batch-25/Module.symvers'\'''
kABI check passed
+ touch state/kernels/ciqlts8_6-CVE-batch-25/x86_64/kabi_checked

Boot test: passed

boot-test.log

Kselftests: passed relative

Reference

kselftests–ciqlts8_6–run1.log

Patch

kselftests–ciqlts8_6-CVE-batch-25–run1.log
kselftests–ciqlts8_6-CVE-batch-25–run2.log
kselftests–ciqlts8_6-CVE-batch-25–run3.log

Comparison

The tests results for the reference and the patch are the same.

$ ktests.xsh diff  kselftests*.log

Column    File
--------  --------------------------------------------
Status0   kselftests--ciqlts8_6--run1.log
Status1   kselftests--ciqlts8_6-CVE-batch-25--run1.log
Status2   kselftests--ciqlts8_6-CVE-batch-25--run2.log
Status3   kselftests--ciqlts8_6-CVE-batch-25--run3.log

TestCase                                     Status0  Status1  Status2  Status3  Summary
android:run.sh                               skip     skip     skip     skip     same
bpf:get_cgroup_id_user                       pass     pass     pass     pass     same
bpf:test_bpftool.sh                          pass     pass     pass     pass     same
bpf:test_bpftool_build.sh                    pass     pass     pass     pass     same
bpf:test_bpftool_metadata.sh                 pass     pass     pass     pass     same
bpf:test_cgroup_storage                      pass     pass     pass     pass     same
bpf:test_dev_cgroup                          pass     pass     pass     pass     same
bpf:test_doc_build.sh                        pass     pass     pass     pass     same
bpf:test_flow_dissector.sh                   pass     pass     pass     pass     same
bpf:test_lirc_mode2.sh                       pass     pass     pass     pass     same
bpf:test_lpm_map                             pass     pass     pass     pass     same
bpf:test_lru_map                             pass     pass     pass     pass     same
bpf:test_lwt_ip_encap.sh                     pass     pass     pass     pass     same
bpf:test_lwt_seg6local.sh                    pass     pass     pass     pass     same
bpf:test_netcnt                              pass     pass     pass     pass     same
bpf:test_offload.py                          fail     fail     fail     fail     same
bpf:test_skb_cgroup_id.sh                    pass     pass     pass     pass     same
bpf:test_sock                                pass     pass     pass     pass     same
bpf:test_sock_addr.sh                        pass     pass     pass     pass     same
bpf:test_sysctl                              pass     pass     pass     pass     same
bpf:test_tag                                 pass     pass     pass     pass     same
bpf:test_tc_edt.sh                           pass     pass     pass     pass     same
bpf:test_tc_tunnel.sh                        pass     pass     pass     pass     same
bpf:test_tcp_check_syncookie.sh              pass     pass     pass     pass     same
bpf:test_tcpnotify_user                      pass     pass     pass     pass     same
bpf:test_tunnel.sh                           pass     pass     pass     pass     same
bpf:test_verifier                            pass     pass     pass     pass     same
bpf:test_verifier_log                        pass     pass     pass     pass     same
bpf:test_xdp_meta.sh                         pass     pass     pass     pass     same
bpf:test_xdp_redirect.sh                     pass     pass     pass     pass     same
bpf:test_xdp_veth.sh                         pass     pass     pass     pass     same
bpf:test_xdp_vlan_mode_generic.sh            pass     pass     pass     pass     same
bpf:test_xdp_vlan_mode_native.sh             pass     pass     pass     pass     same
bpf:test_xdping.sh                           pass     pass     pass     pass     same
bpf:urandom_read                             pass     pass     pass     pass     same
breakpoints:breakpoint_test                  pass     pass     pass     pass     same
capabilities:test_execve                     pass     pass     pass     pass     same
core:close_range_test                        pass     pass     pass     pass     same
cpu-hotplug:cpu-on-off-test.sh               pass     pass     pass     pass     same
cpufreq:main.sh                              fail     fail     fail     fail     same
exec:execveat                                pass     pass     pass     pass     same
firmware:fw_run_tests.sh                     skip     skip     skip     skip     same
fpu:run_test_fpu.sh                          skip     skip     skip     skip     same
fpu:test_fpu                                 pass     pass     pass     pass     same
ftrace:ftracetest                            fail     fail     fail     fail     same
futex:run.sh                                 pass     pass     pass     pass     same
gpio:gpio-mockup.sh                          fail     fail     fail     fail     same
intel_pstate:run.sh                          pass     pass     pass     pass     same
ipc:msgque                                   pass     pass     pass     pass     same
kcmp:kcmp_test                               pass     pass     pass     pass     same
kexec:test_kexec_file_load.sh                skip     skip     skip     skip     same
kexec:test_kexec_load.sh                     skip     skip     skip     skip     same
kvm:access_tracking_perf_test                fail     fail     fail     fail     same
kvm:amx_test                                 fail     fail     fail     fail     same
kvm:cr4_cpuid_sync_test                      fail     fail     fail     fail     same
kvm:debug_regs                               fail     fail     fail     fail     same
kvm:demand_paging_test                       pass     pass     pass     pass     same
kvm:dirty_log_perf_test                      pass     pass     pass     pass     same
kvm:dirty_log_test                           fail     fail     fail     fail     same
kvm:emulator_error_test                      fail     fail     fail     fail     same
kvm:evmcs_test                               fail     fail     fail     fail     same
kvm:get_cpuid_test                           fail     fail     fail     fail     same
kvm:get_msr_index_features                   fail     fail     fail     fail     same
kvm:hardware_disable_test                    pass     pass     pass     pass     same
kvm:hyperv_clock                             fail     fail     fail     fail     same
kvm:hyperv_cpuid                             fail     fail     fail     fail     same
kvm:hyperv_features                          fail     fail     fail     fail     same
kvm:kvm_binary_stats_test                    pass     pass     pass     pass     same
kvm:kvm_create_max_vcpus                     skip     skip     skip     skip     same
kvm:kvm_page_table_test                      pass     pass     pass     pass     same
kvm:kvm_pv_test                              fail     fail     fail     fail     same
kvm:memslot_modification_stress_test         pass     pass     pass     pass     same
kvm:memslot_perf_test                        fail     fail     fail     fail     same
kvm:mmio_warning_test                        fail     fail     fail     fail     same
kvm:mmu_role_test                            fail     fail     fail     fail     same
kvm:platform_info_test                       fail     fail     fail     fail     same
kvm:rseq_test                                fail     fail     fail     fail     same
kvm:set_boot_cpu_id                          fail     fail     fail     fail     same
kvm:set_memory_region_test                   pass     pass     pass     pass     same
kvm:set_sregs_test                           fail     fail     fail     fail     same
kvm:smm_test                                 fail     fail     fail     fail     same
kvm:state_test                               fail     fail     fail     fail     same
kvm:steal_time                               pass     pass     pass     pass     same
kvm:svm_int_ctl_test                         fail     fail     fail     fail     same
kvm:svm_vmcall_test                          fail     fail     fail     fail     same
kvm:sync_regs_test                           fail     fail     fail     fail     same
kvm:tsc_msrs_test                            fail     fail     fail     fail     same
kvm:userspace_msr_exit_test                  fail     fail     fail     fail     same
kvm:vmx_apic_access_test                     fail     fail     fail     fail     same
kvm:vmx_close_while_nested_test              fail     fail     fail     fail     same
kvm:vmx_dirty_log_test                       fail     fail     fail     fail     same
kvm:vmx_nested_tsc_scaling_test              fail     fail     fail     fail     same
kvm:vmx_pmu_msrs_test                        fail     fail     fail     fail     same
kvm:vmx_preemption_timer_test                fail     fail     fail     fail     same
kvm:vmx_set_nested_state_test                fail     fail     fail     fail     same
kvm:vmx_tsc_adjust_test                      fail     fail     fail     fail     same
kvm:xapic_ipi_test                           fail     fail     fail     fail     same
kvm:xen_shinfo_test                          fail     fail     fail     fail     same
kvm:xen_vmcall_test                          fail     fail     fail     fail     same
kvm:xss_msr_test                             fail     fail     fail     fail     same
lib:bitmap.sh                                skip     skip     skip     skip     same
lib:prime_numbers.sh                         skip     skip     skip     skip     same
lib:printf.sh                                skip     skip     skip     skip     same
lib:scanf.sh                                 fail     fail     fail     fail     same
livepatch:test-callbacks.sh                  pass     pass     pass     pass     same
livepatch:test-ftrace.sh                     pass     pass     pass     pass     same
livepatch:test-livepatch.sh                  pass     pass     pass     pass     same
livepatch:test-shadow-vars.sh                pass     pass     pass     pass     same
livepatch:test-state.sh                      pass     pass     pass     pass     same
membarrier:membarrier_test_multi_thread      pass     pass     pass     pass     same
membarrier:membarrier_test_single_thread     pass     pass     pass     pass     same
memfd:memfd_test                             pass     pass     pass     pass     same
memfd:run_fuse_test.sh                       fail     fail     fail     fail     same
memfd:run_hugetlbfs_test.sh                  pass     pass     pass     pass     same
memory-hotplug:mem-on-off-test.sh            pass     pass     pass     pass     same
mount:run_tests.sh                           pass     pass     pass     pass     same
net/forwarding:bridge_port_isolation.sh      pass     pass     pass     pass     same
net/forwarding:bridge_sticky_fdb.sh          pass     pass     pass     pass     same
net/forwarding:bridge_vlan_aware.sh          fail     fail     fail     fail     same
net/forwarding:bridge_vlan_unaware.sh        pass     pass     pass     pass     same
net/forwarding:ethtool.sh                    fail     fail     fail     fail     same
net/forwarding:gre_multipath.sh              fail     fail     fail     fail     same
net/forwarding:ip6_forward_instats_vrf.sh    fail     fail     fail     fail     same
net/forwarding:ipip_flat_gre.sh              pass     pass     pass     pass     same
net/forwarding:ipip_flat_gre_key.sh          pass     pass     pass     pass     same
net/forwarding:ipip_flat_gre_keys.sh         pass     pass     pass     pass     same
net/forwarding:ipip_hier_gre.sh              pass     pass     pass     pass     same
net/forwarding:ipip_hier_gre_key.sh          pass     pass     pass     pass     same
net/forwarding:loopback.sh                   skip     skip     skip     skip     same
net/forwarding:mirror_gre.sh                 fail     fail     fail     fail     same
net/forwarding:mirror_gre_bound.sh           pass     pass     pass     pass     same
net/forwarding:mirror_gre_bridge_1d.sh       pass     pass     pass     pass     same
net/forwarding:mirror_gre_bridge_1q.sh       pass     pass     pass     pass     same
net/forwarding:mirror_gre_bridge_1q_lag.sh   pass     pass     pass     pass     same
net/forwarding:mirror_gre_changes.sh         fail     fail     fail     fail     same
net/forwarding:mirror_gre_flower.sh          fail     fail     fail     fail     same
net/forwarding:mirror_gre_lag_lacp.sh        pass     pass     pass     pass     same
net/forwarding:mirror_gre_neigh.sh           pass     pass     pass     pass     same
net/forwarding:mirror_gre_nh.sh              pass     pass     pass     pass     same
net/forwarding:mirror_gre_vlan.sh            pass     pass     pass     pass     same
net/forwarding:mirror_vlan.sh                pass     pass     pass     pass     same
net/forwarding:router.sh                     fail     fail     fail     fail     same
net/forwarding:router_bridge.sh              pass     pass     pass     pass     same
net/forwarding:router_bridge_vlan.sh         pass     pass     pass     pass     same
net/forwarding:router_broadcast.sh           fail     fail     fail     fail     same
net/forwarding:router_multicast.sh           fail     fail     fail     fail     same
net/forwarding:router_multipath.sh           fail     fail     fail     fail     same
net/forwarding:router_vid_1.sh               pass     pass     pass     pass     same
net/forwarding:tc_chains.sh                  pass     pass     pass     pass     same
net/forwarding:tc_flower.sh                  pass     pass     pass     pass     same
net/forwarding:tc_flower_router.sh           pass     pass     pass     pass     same
net/forwarding:tc_mpls_l2vpn.sh              pass     pass     pass     pass     same
net/forwarding:tc_shblocks.sh                pass     pass     pass     pass     same
net/forwarding:tc_vlan_modify.sh             pass     pass     pass     pass     same
net/forwarding:vxlan_asymmetric.sh           pass     pass     pass     pass     same
net/forwarding:vxlan_bridge_1d.sh            fail     fail     fail     fail     same
net/forwarding:vxlan_bridge_1d_port_8472.sh  pass     pass     pass     pass     same
net/forwarding:vxlan_bridge_1q.sh            fail     fail     fail     fail     same
net/forwarding:vxlan_bridge_1q_port_8472.sh  pass     pass     pass     pass     same
net/forwarding:vxlan_symmetric.sh            pass     pass     pass     pass     same
net/mptcp:diag.sh                            pass     pass     pass     pass     same
net/mptcp:mptcp_connect.sh                   pass     pass     pass     pass     same
net/mptcp:mptcp_sockopt.sh                   pass     pass     pass     pass     same
net/mptcp:pm_netlink.sh                      pass     pass     pass     pass     same
net:bareudp.sh                               pass     pass     pass     pass     same
net:devlink_port_split.py                    pass     pass     pass     pass     same
net:drop_monitor_tests.sh                    skip     skip     skip     skip     same
net:fcnal-test.sh                            pass     pass     pass     pass     same
net:fib-onlink-tests.sh                      pass     pass     pass     pass     same
net:fib_rule_tests.sh                        fail     fail     fail     fail     same
net:fib_tests.sh                             pass     pass     pass     pass     same
net:gre_gso.sh                               pass     pass     pass     pass     same
net:icmp_redirect.sh                         pass     pass     pass     pass     same
net:ip6_gre_headroom.sh                      pass     pass     pass     pass     same
net:ipv6_flowlabel.sh                        pass     pass     pass     pass     same
net:l2tp.sh                                  pass     pass     pass     pass     same
net:msg_zerocopy.sh                          fail     fail     fail     fail     same
net:netdevice.sh                             pass     pass     pass     pass     same
net:pmtu.sh                                  pass     pass     pass     pass     same
net:psock_snd.sh                             fail     fail     fail     fail     same
net:reuseaddr_conflict                       pass     pass     pass     pass     same
net:reuseport_bpf                            pass     pass     pass     pass     same
net:reuseport_bpf_cpu                        pass     pass     pass     pass     same
net:reuseport_bpf_numa                       pass     pass     pass     pass     same
net:reuseport_dualstack                      pass     pass     pass     pass     same
net:rtnetlink.sh                             skip     skip     skip     skip     same
net:run_afpackettests                        pass     pass     pass     pass     same
net:run_netsocktests                         pass     pass     pass     pass     same
net:rxtimestamp.sh                           pass     pass     pass     pass     same
net:so_txtime.sh                             fail     fail     fail     fail     same
net:test_bpf.sh                              pass     pass     pass     pass     same
net:test_vxlan_fdb_changelink.sh             pass     pass     pass     pass     same
net:tls                                      pass     pass     pass     pass     same
net:traceroute.sh                            pass     pass     pass     pass     same
net:udpgro.sh                                fail     fail     fail     fail     same
net:udpgro_bench.sh                          fail     fail     fail     fail     same
net:udpgso.sh                                pass     pass     pass     pass     same
net:veth.sh                                  fail     fail     fail     fail     same
net:vrf-xfrm-tests.sh                        pass     pass     pass     pass     same
netfilter:conntrack_icmp_related.sh          fail     fail     fail     fail     same
netfilter:conntrack_tcp_unreplied.sh         fail     fail     fail     fail     same
netfilter:ipvs.sh                            skip     skip     skip     skip     same
netfilter:nft_flowtable.sh                   fail     fail     fail     fail     same
netfilter:nft_meta.sh                        pass     pass     pass     pass     same
netfilter:nft_nat.sh                         skip     skip     skip     skip     same
netfilter:nft_queue.sh                       skip     skip     skip     skip     same
nsfs:owner                                   pass     pass     pass     pass     same
nsfs:pidns                                   pass     pass     pass     pass     same
proc:fd-001-lookup                           pass     pass     pass     pass     same
proc:fd-002-posix-eq                         pass     pass     pass     pass     same
proc:fd-003-kthread                          pass     pass     pass     pass     same
proc:proc-loadavg-001                        pass     pass     pass     pass     same
proc:proc-self-map-files-001                 pass     pass     pass     pass     same
proc:proc-self-map-files-002                 fail     fail     fail     fail     same
proc:proc-self-syscall                       pass     pass     pass     pass     same
proc:proc-self-wchan                         pass     pass     pass     pass     same
proc:proc-uptime-001                         pass     pass     pass     pass     same
proc:proc-uptime-002                         pass     pass     pass     pass     same
proc:read                                    pass     pass     pass     pass     same
proc:setns-dcache                            fail     fail     fail     fail     same
pstore:pstore_post_reboot_tests              skip     skip     skip     skip     same
pstore:pstore_tests                          fail     fail     fail     fail     same
ptrace:peeksiginfo                           pass     pass     pass     pass     same
ptrace:vmaccess                              fail     fail     fail     fail     same
rseq:basic_percpu_ops_test                   pass     pass     pass     pass     same
rseq:basic_test                              pass     pass     pass     pass     same
rseq:param_test                              pass     pass     pass     pass     same
rseq:param_test_benchmark                    pass     pass     pass     pass     same
rseq:param_test_compare_twice                pass     pass     pass     pass     same
rseq:run_param_test.sh                       fail     fail     fail     fail     same
sgx:test_sgx                                 fail     fail     fail     fail     same
sigaltstack:sas                              pass     pass     pass     pass     same
size:get_size                                pass     pass     pass     pass     same
splice:default_file_splice_read.sh           pass     pass     pass     pass     same
static_keys:test_static_keys.sh              skip     skip     skip     skip     same
tc-testing:tdc.sh                            pass     pass     pass     pass     same
timens:clock_nanosleep                       pass     pass     pass     pass     same
timens:exec                                  pass     pass     pass     pass     same
timens:procfs                                pass     pass     pass     pass     same
timens:timens                                pass     pass     pass     pass     same
timens:timer                                 pass     pass     pass     pass     same
timens:timerfd                               pass     pass     pass     pass     same
timers:inconsistency-check                   fail     fail     fail     fail     same
timers:mqueue-lat                            pass     pass     pass     pass     same
timers:nanosleep                             pass     pass     pass     pass     same
timers:nsleep-lat                            fail     fail     fail     fail     same
timers:posix_timers                          pass     pass     pass     pass     same
timers:rtcpie                                pass     pass     pass     pass     same
timers:set-timer-lat                         fail     fail     fail     fail     same
timers:threadtest                            pass     pass     pass     pass     same
tpm2:test_smoke.sh                           fail     fail     fail     fail     same
tpm2:test_space.sh                           fail     fail     fail     fail     same
vm:run_vmtests                               fail     fail     fail     fail     same
x86:amx_64                                   fail     fail     fail     fail     same
x86:check_initial_reg_state_64               pass     pass     pass     pass     same
x86:corrupt_xstate_header_64                 pass     pass     pass     pass     same
x86:fsgsbase_64                              pass     pass     pass     pass     same
x86:fsgsbase_restore_64                      pass     pass     pass     pass     same
x86:ioperm_64                                pass     pass     pass     pass     same
x86:iopl_64                                  pass     pass     pass     pass     same
x86:mov_ss_trap_64                           pass     pass     pass     pass     same
x86:mpx-mini-test_64                         fail     fail     fail     fail     same
x86:protection_keys_64                       pass     pass     pass     pass     same
x86:sigaltstack_64                           pass     pass     pass     pass     same
x86:sigreturn_64                             pass     pass     pass     pass     same
x86:single_step_syscall_64                   pass     pass     pass     pass     same
x86:syscall_nt_64                            pass     pass     pass     pass     same
x86:sysret_rip_64                            pass     pass     pass     pass     same
x86:sysret_ss_attrs_64                       pass     pass     pass     pass     same
x86:test_mremap_vdso_64                      pass     pass     pass     pass     same
x86:test_vdso_64                             pass     pass     pass     pass     same
x86:test_vsyscall_64                         pass     pass     pass     pass     same
zram:zram.sh                                 pass     pass     pass     pass     same

jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 6350d6a
upstream-diff |
  - Modified the `uvc_ioctl_s_ctrl()' function body to align with the new
    signature of `uvc_ctrl_commit()' it is using. A throwaway object
    `xctrls' is created on stack to encapsulate `xctrl' formerly passed to
    `uvc_ctrl_commit()' directly. This adaptation was missing from the
    backported commit, because at the moment of its introduction the
    `uvc_ioctl_s_ctrl()' function was no longer present, removed in
    0c6bcbd ("media: uvcvideo: Remove
    s_ctrl and g_ctrl"), which was not backported to LTS 8.6.
  - Solved the context conflict stemming from the missing
    ee929d5

If we have an error setting a control, return the affected control in
the error_idx field.

	Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
	Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
	Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
(cherry picked from commit 6350d6a)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit f0577b1

If mappings points to an invalid memory, we will be invalid accessing
it. Solve it by initializing the value of the variable mapping and by
changing the order in the conditional statement (to avoid accessing
mapping->id if not needed).

Fix:
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [ctrliq#1] PREEMPT SMP KASAN NOPTI

Fixes: 6350d6a ("media: uvcvideo: Set error_idx during ctrl_commit errors")
	Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
	Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
(cherry picked from commit f0577b1)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 414d3b4

If the memory where ctrl_found is placed has the value of uvc_ctrl and
__uvc_find_control does not find the control we will return an invalid
index.

Fixes: 6350d6a ("media: uvcvideo: Set error_idx during ctrl_commit errors")
	Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
	Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
(cherry picked from commit 414d3b4)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 64627da

Avoid using the iterators after the list_for_each() constructs.
This patch should be a NOP, but makes cocci, happier:

drivers/media/usb/uvc/uvc_ctrl.c:1861:44-50: ERROR: invalid reference to the index variable of the iterator on line 1850
drivers/media/usb/uvc/uvc_ctrl.c:2195:17-23: ERROR: invalid reference to the index variable of the iterator on line 2179

	Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
	Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
	Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
(cherry picked from commit 64627da)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-53459
cve-pre CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit d9fecd0

Now we keep a reference to the active fh for any call to uvc_ctrl_set,
regardless if it is an actual set or if it is a just a try or if the
device refused the operation.

We should only keep the file handle if the device actually accepted
applying the operation.

	Cc: stable@vger.kernel.org
Fixes: e5225c8 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives")
	Suggested-by: Hans de Goede <hdegoede@redhat.com>
	Reviewed-by: Hans de Goede <hdegoede@redhat.com>
	Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-1-26c867231118@chromium.org
	Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
(cherry picked from commit d9fecd0)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-53459
cve CVE-2024-58002
commit-author Ricardo Ribalda <ribalda@chromium.org>
commit 221cd51
upstream-diff Used linux-5.15.y backport
  117f7a2 as the base because of the
  missing backport of 54da6a0 which
  changed the locking scheme used in the upstream version. Resolved
  context conflicts around the `uvc_ctrl_cleanup_fh()' function

When an async control is written, we copy a pointer to the file handle
that started the operation. That pointer will be used when the device is
done. Which could be anytime in the future.

If the user closes that file descriptor, its structure will be freed,
and there will be one dangling pointer per pending async control, that
the driver will try to use.

Clean all the dangling pointers during release().

To avoid adding a performance penalty in the most common case (no async
operation), a counter has been introduced with some logic to make sure
that it is properly handled.

	Cc: stable@vger.kernel.org
Fixes: e5225c8 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives")
	Reviewed-by: Hans de Goede <hdegoede@redhat.com>
	Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
	Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-3-26c867231118@chromium.org
	Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
	Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
(cherry picked from commit 117f7a2)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
…by a signal

jira VULN-32672
cve CVE-2022-48786
commit-author Seth Forshee <sforshee@digitalocean.com>
commit b920849

vsock_connect() expects that the socket could already be in the
TCP_ESTABLISHED state when the connecting task wakes up with a signal
pending. If this happens the socket will be in the connected table, and
it is not removed when the socket state is reset. In this situation it's
common for the process to retry connect(), and if the connection is
successful the socket will be added to the connected table a second
time, corrupting the list.

Prevent this by calling vsock_remove_connected() if a signal is received
while waiting for a connection. This is harmless if the socket is not in
the connected table, and if it is in the table then removing it will
prevent list corruption from a double add.

Note for backporting: this patch requires d5afa82 ("vsock: correct
removal of socket from the list"), which is in all current stable trees
except 4.9.y.

Fixes: d021c34 ("VSOCK: Introduce VM Sockets")
	Signed-off-by: Seth Forshee <sforshee@digitalocean.com>
	Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20220217141312.2297547-1-sforshee@digitalocean.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit b920849)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
@pvts-mat pvts-mat force-pushed the ciqlts8_6-CVE-batch-25 branch from ffc4761 to 99c4b23 Compare March 20, 2026 16:14
@PlaidCat PlaidCat requested a review from a team March 20, 2026 19:46
@github-actions
Copy link

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

@github-actions
Copy link

🔍 Interdiff Analysis

  • ⚠️ PR commit 0a4798163566 (media: uvcvideo: Set error_idx during ctrl_commit errors) → upstream 6350d6a4ed48
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -1024,7 +1024,6 @@
 	struct uvc_fh *handle = fh;
 	struct uvc_video_chain *chain = handle->chain;
 	struct v4l2_ext_control xctrl;
-	struct v4l2_ext_controls xctrls;
 	int ret;
 
 	memset(&xctrl, 0, sizeof(xctrl));
@@ -1041,9 +1040,7 @@
 		return ret;
 	}
 
-	xctrls.controls = &xctrl;
-	xctrls.count = 1;
-	ret = uvc_ctrl_commit(handle, &xctrls);
+	ret = uvc_ctrl_commit(handle, &xctrl, 1);
 	if (ret < 0)
 		return ret;
 

################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -1100,7 +1100,7 @@
 	ctrls->error_idx = 0;
 
 	if (ioctl == VIDIOC_S_EXT_CTRLS)
-		return uvc_ctrl_commit(handle, ctrls->controls, ctrls->count);
+		return uvc_ctrl_commit(handle, ctrls);
 	else
 		return uvc_ctrl_rollback(handle);
 }

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -1119,6 +1099,6 @@
 	ctrls->error_idx = 0;
 
-	if (commit)
+	if (ioctl == VIDIOC_S_EXT_CTRLS)
 		return uvc_ctrl_commit(handle, ctrls->controls, ctrls->count);
 	else
 		return uvc_ctrl_rollback(handle);
  • ⚠️ PR commit 31c6c63ae88f (media: uvcvideo: Remove dangling pointers) → upstream 221cd51efe45
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -2419,16 +2419,13 @@
 {
 	struct uvc_entity *entity;
 
-	mutex_lock(&handle->chain->ctrl_mutex);
+	guard(mutex)(&handle->chain->ctrl_mutex);
 
-	if (!handle->pending_async_ctrls) {
-		mutex_unlock(&handle->chain->ctrl_mutex);
+	if (!handle->pending_async_ctrls)
 		return;
-	}
 
 	list_for_each_entry(entity, &handle->chain->dev->entities, list) {
-		unsigned int i;
-		for (i = 0; i < entity->ncontrols; ++i) {
+		for (unsigned int i = 0; i < entity->ncontrols; ++i) {
 			if (entity->controls[i].handle != handle)
 				continue;
 			uvc_ctrl_set_handle(handle, &entity->controls[i], NULL);
@@ -2436,7 +2433,6 @@
 	}
 
 	WARN_ON(handle->pending_async_ctrls);
-	mutex_unlock(&handle->chain->ctrl_mutex);
 }
 
 /*

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -897,6 +789,6 @@
 int uvc_xu_ctrl_query(struct uvc_video_chain *chain,
 		      struct uvc_xu_control_query *xqry);
 
 /* Utility functions */
-void uvc_simplify_fraction(u32 *numerator, u32 *denominator,
-			   unsigned int n_terms, unsigned int threshold);
+struct usb_host_endpoint *uvc_find_endpoint(struct usb_host_interface *alts,
+					    u8 epaddr);
  • ⚠️ PR commit 99c4b23e1baf (nfsd: don't ignore the return code of svc_proc_register()) → upstream 930b64ca0c51
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -1524,10 +1524,7 @@
 	retval = nfsd4_init_pnfs();
 	if (retval)
 		goto out_free_slabs;
-	if (!nfsd_stat_init()) {	/* Statistics */
-		retval = -ENOMEM;
-		goto out_free_pnfs;
-	}
+	nfsd_stat_init();	/* Statistics */
 	retval = nfsd_drc_slab_create();
 	if (retval)
 		goto out_free_stat;
@@ -1552,7 +1549,6 @@
 	nfsd_drc_slab_free();
 out_free_stat:
 	nfsd_stat_shutdown();
-out_free_pnfs:
 	nfsd4_exit_pnfs();
 out_free_slabs:
 	nfsd4_free_slabs();
--- b/fs/nfsd/stats.c
+++ b/fs/nfsd/stats.c
@@ -91,10 +91,10 @@
 	.release = single_release,
 };
 
-struct proc_dir_entry *
+void
 nfsd_stat_init(void)
 {
-	return svc_proc_register(&init_net, &nfsd_svcstats, &nfsd_proc_fops);
+	svc_proc_register(&init_net, &nfsd_svcstats, &nfsd_proc_fops);
 }
 
 void
--- b/fs/nfsd/stats.h
+++ b/fs/nfsd/stats.h
@@ -38,7 +38,7 @@
 extern struct nfsd_stats	nfsdstats;
 extern struct svc_stat		nfsd_svcstats;
 
-struct proc_dir_entry *	nfsd_stat_init(void);
+void	nfsd_stat_init(void);
 void	nfsd_stat_shutdown(void);
 
 #endif /* _NFSD_STATS_H */

################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -2202,6 +2202,7 @@
 					  NFSD_STATS_COUNTERS_NUM);
 	if (retval)
 		goto out_repcache_error;
+
 	memset(&nn->nfsd_svcstats, 0, sizeof(nn->nfsd_svcstats));
 	nn->nfsd_svcstats.program = &nfsd_programs[0];
 	for (i = 0; i < sizeof(nn->nfsd_versions); i++)
@@ -2204,6 +2205,11 @@
 		goto out_repcache_error;
 	memset(&nn->nfsd_svcstats, 0, sizeof(nn->nfsd_svcstats));
 	nn->nfsd_svcstats.program = &nfsd_programs[0];
+	if (!nfsd_proc_stat_init(net)) {
+		retval = -ENOMEM;
+		goto out_proc_error;
+	}
+
 	for (i = 0; i < sizeof(nn->nfsd_versions); i++)
 		nn->nfsd_versions[i] = nfsd_support_version(i);
 	for (i = 0; i < sizeof(nn->nfsd4_minorversions); i++)
@@ -2213,7 +2219,6 @@
 	nfsd4_init_leases_net(nn);
 	get_random_bytes(&nn->siphash_key, sizeof(nn->siphash_key));
 	seqlock_init(&nn->writeverf_lock);
-	nfsd_proc_stat_init(net);
 #if IS_ENABLED(CONFIG_NFS_LOCALIO)
 	spin_lock_init(&nn->local_clients_lock);
 	INIT_LIST_HEAD(&nn->local_clients);
@@ -2217,6 +2222,8 @@
 #endif
 	return 0;
 
+out_proc_error:
+	percpu_counter_destroy_many(nn->counter, NFSD_STATS_COUNTERS_NUM);
 out_repcache_error:
 	nfsd_idmap_shutdown(net);
 out_idmap_error:
--- b/fs/nfsd/stats.c
+++ b/fs/nfsd/stats.c
@@ -73,7 +73,7 @@
 
 DEFINE_PROC_SHOW_ATTRIBUTE(nfsd);
 
-void nfsd_proc_stat_init(struct net *net)
+struct proc_dir_entry *nfsd_proc_stat_init(struct net *net)
 {
 	struct nfsd_net *nn = net_generic(net, nfsd_net_id);
 
@@ -77,7 +77,7 @@
 {
 	struct nfsd_net *nn = net_generic(net, nfsd_net_id);
 
-	svc_proc_register(net, &nn->nfsd_svcstats, &nfsd_proc_ops);
+	return svc_proc_register(net, &nn->nfsd_svcstats, &nfsd_proc_ops);
 }
 
 void nfsd_proc_stat_shutdown(struct net *net)
--- b/fs/nfsd/stats.h
+++ b/fs/nfsd/stats.h
@@ -10,7 +10,7 @@
 #include <uapi/linux/nfsd/stats.h>
 #include <linux/percpu_counter.h>
 
-void nfsd_proc_stat_init(struct net *net);
+struct proc_dir_entry *nfsd_proc_stat_init(struct net *net);
 void nfsd_proc_stat_shutdown(struct net *net);
 
 static inline void nfsd_stats_rc_hits_inc(struct nfsd_net *nn)

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/fs/nfsd/stats.c
+++ b/fs/nfsd/stats.c
@@ -72,8 +70,11 @@
 
-void
-nfsd_stat_init(void)
+DEFINE_PROC_SHOW_ATTRIBUTE(nfsd);
+
+void nfsd_proc_stat_init(struct net *net)
 {
-	svc_proc_register(&init_net, &nfsd_svcstats, &nfsd_proc_fops);
+	struct nfsd_net *nn = net_generic(net, nfsd_net_id);
+
+	svc_proc_register(net, &nn->nfsd_svcstats, &nfsd_proc_ops);
 }
 
-void
+void nfsd_proc_stat_shutdown(struct net *net)
--- b/fs/nfsd/stats.h
+++ b/fs/nfsd/stats.h
@@ -7,7 +7,7 @@
-extern struct nfsd_stats	nfsdstats;
-extern struct svc_stat		nfsd_svcstats;
+#include <uapi/linux/nfsd/stats.h>
+#include <linux/percpu_counter.h>
 
-void	nfsd_stat_init(void);
-void	nfsd_stat_shutdown(void);
+void nfsd_proc_stat_init(struct net *net);
+void nfsd_proc_stat_shutdown(struct net *net);
 
-#endif /* _NFSD_STATS_H */
+static inline void nfsd_stats_rc_hits_inc(struct nfsd_net *nn)

This is an automated interdiff check for backported commits.

@github-actions
Copy link

JIRA PR Check Results

10 commit(s) with issues found:

Commit 99c4b23e1baf

Summary: nfsd: don't ignore the return code of svc_proc_register()

❌ Errors:

  • VULN-64890: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-64890: No time logged - please log time manually

Commit eb5a23743e7f

Summary: vsock: Ignore signal/timeout on connect() if already established

❌ Errors:

  • VULN-160775: Status is 'Publish CSAF', expected 'In Progress'
  • VULN-160775: LTS product 'cbr-7.9' expects branch 'ciqcbr7_9', but merge target is 'ciqlts8_6'

Commit 0dfaf5a7c479

Summary: vsock: avoid to close connected socket after the timeout

❌ Errors:

  • VULN-160775: Status is 'Publish CSAF', expected 'In Progress'
  • VULN-160775: LTS product 'cbr-7.9' expects branch 'ciqcbr7_9', but merge target is 'ciqlts8_6'

Commit 354366be3aaa

Summary: vsock: remove vsock from connected table when connect is interrupted by a signal

❌ Errors:

  • VULN-32672: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-32672: No time logged - please log time manually

Commit 31c6c63ae88f

Summary: media: uvcvideo: Remove dangling pointers

❌ Errors:

  • VULN-53459: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-53459: No time logged - please log time manually

Commit 0a6749a0a0dd

Summary: media: uvcvideo: Only save async fh if success

❌ Errors:

  • VULN-53459: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-53459: No time logged - please log time manually

Commit 0dcad1b8cc7b

Summary: media: uvcvideo: Refactor iterators

❌ Errors:

  • VULN-53459: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-53459: No time logged - please log time manually

Commit a6e45fdd11c4

Summary: media: uvcvideo: Avoid returning invalid controls

❌ Errors:

  • VULN-53459: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-53459: No time logged - please log time manually

Commit 0eb97ed76df0

Summary: media: uvcvideo: Avoid invalid memory access

❌ Errors:

  • VULN-53459: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-53459: No time logged - please log time manually

Commit 0a4798163566

Summary: media: uvcvideo: Set error_idx during ctrl_commit errors

❌ Errors:

  • VULN-53459: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-53459: No time logged - please log time manually

Summary: Checked 10 commit(s) total.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ This PR contains VULN tickets that do not match the target LTS product. Please review the JIRA ticket assignments and ensure they match the merge target branch.

@github-actions
Copy link

Validation checks completed with issues View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/23360220178

jira VULN-160776
cve-pre CVE-2025-40248
commit-author Zhuang Shengen <zhuangshengen@huawei.com>
commit 6d4486e

When client and server establish a connection through vsock,
the client send a request to the server to initiate the connection,
then start a timer to wait for the server's response. When the server's
RESPONSE message arrives, the timer also times out and exits. The
server's RESPONSE message is processed first, and the connection is
established. However, the client's timer also times out, the original
processing logic of the client is to directly set the state of this vsock
to CLOSE and return ETIMEDOUT. It will not notify the server when the port
is released, causing the server port remain.
when client's vsock_connect timeout,it should check sk state is
ESTABLISHED or not. if sk state is ESTABLISHED, it means the connection
is established, the client should not set the sk state to CLOSE

Note: I encountered this issue on kernel-4.18, which can be fixed by
this patch. Then I checked the latest code in the community
and found similar issue.

Fixes: d021c34 ("VSOCK: Introduce VM Sockets")
	Signed-off-by: Zhuang Shengen <zhuangshengen@huawei.com>
	Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 6d4486e)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-160776
cve CVE-2025-40248
commit-author Michal Luczaj <mhal@rbox.co>
commit 002541e

During connect(), acting on a signal/timeout by disconnecting an already
established socket leads to several issues:

1. connect() invoking vsock_transport_cancel_pkt() ->
   virtio_transport_purge_skbs() may race with sendmsg() invoking
   virtio_transport_get_credit(). This results in a permanently elevated
   `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.

2. connect() resetting a connected socket's state may race with socket
   being placed in a sockmap. A disconnected socket remaining in a sockmap
   breaks sockmap's assumptions. And gives rise to WARNs.

3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a
   transport change/drop after TCP_ESTABLISHED. Which poses a problem for
   any simultaneous sendmsg() or connect() and may result in a
   use-after-free/null-ptr-deref.

Do not disconnect socket on signal/timeout. Keep the logic for unconnected
sockets: they don't linger, can't be placed in a sockmap, are rejected by
sendmsg().

[1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/
[2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/
[3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/

Fixes: d021c34 ("VSOCK: Introduce VM Sockets")
	Signed-off-by: Michal Luczaj <mhal@rbox.co>
	Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://patch.msgid.link/20251119-vsock-interrupted-connect-v2-1-70734cf1233f@rbox.co
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 002541e)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-64890
cve CVE-2025-22026
commit-author Jeff Layton <jlayton@kernel.org>
commit 930b64c
upstream-diff Ignored cherry-pick of the upstrem fix - the LTS 8.6 nfsd
  codebase was too distinct from the upstream for auto merging to be
  useful in any way. Backported checking of the `svc_proc_register()' exit
  code manually:
  fs/nfsd/stats.c
        Modified function `nfsd_stat_init()' instead of
        `nfsd_proc_stat_init()' because it was renamed in the
        non-backported commit 93483ac.
  fs/nfsd/stats.h
        Like above
  fs/nfsd/nfsctl.c
        - Modified `init_nfsd()' where `nfsd_stat_init()' is actually used
          in LTS 8.6 instead of `nfsd_net_init()', where this function
          call (named `nfsd_proc_stat_init()' at that time) was moved in
          the non-backported commit
          93483ac.
        - Ignored the `percpu_counter_destroy_many()' cleanup not
          applicable to the `init_nfsd()' function. Included in the exit
          path instead the `nfsd4_exit_pnfs()' call with the use of newly
          introduced label `out_free_pnfs'.

Currently, nfsd_proc_stat_init() ignores the return value of
svc_proc_register(). If the procfile creation fails, then the kernel
will WARN when it tries to remove the entry later.

Fix nfsd_proc_stat_init() to return the same type of pointer as
svc_proc_register(), and fix up nfsd_net_init() to check that and fail
the nfsd_net construction if it occurs.

svc_proc_register() can fail if the dentry can't be allocated, or if an
identical dentry already exists. The second case is pretty unlikely in
the nfsd_net construction codepath, so if this happens, return -ENOMEM.

	Reported-by: syzbot+e34ad04f27991521104c@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-nfs/67a47501.050a0220.19061f.05f9.GAE@google.com/
	Cc: stable@vger.kernel.org # v6.9
	Signed-off-by: Jeff Layton <jlayton@kernel.org>
	Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
(cherry picked from commit 930b64c)
	Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
@pvts-mat pvts-mat force-pushed the ciqlts8_6-CVE-batch-25 branch from 99c4b23 to cb64da0 Compare March 20, 2026 20:31
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.

1 participant