kernel-5.14.0-687.52.1.el9_8
エラータID: AXSA:2026-2228:113
The kernel packages contain the Linux kernel, the core of any Linux operating system.
Security Fix(es):
* kernel: fbcon: Set fb_display[i]->mode to NULL when the mode is released (CVE-2025-40323)
* kernel: smb: smbdirect: introduce smbdirect_socket.recv_io.credits.available (CVE-2026-31539)
* kernel: drm/amdgpu/vcn3: Prevent OOB reads when parsing dec msg (CVE-2026-46230)
* kernel: drm/amdgpu/vcn4: Prevent OOB reads when parsing IB (CVE-2026-46204)
* kernel: drm/amdgpu/vcn4: Prevent OOB reads when parsing dec msg (CVE-2026-46199)
* kernel: drm/amdgpu/userq: fix access to stale wptr mapping (CVE-2026-46311)
* kernel: netfilter: nf_queue: hold bridge skb->dev while queued (CVE-2026-52912)
* kernel: accel/ivpu: Add buffer overflow check in MS get_info_ioctl (CVE-2026-53203)
* kernel: drm/xe/eustall: Fix drm_dev_put called before stream disable in close (CVE-2026-53290)
* kernel: drm/virtio: use uninterruptible resv lock for plane updates (CVE-2026-64098)
* kernel: Linux kernel: PPPoE memory corruption via stale pointer (CVE-2026-68121)
* kernel: drm/amdgpu/vce: fix integer overflow in image size (CVE-2026-68108)
* kernel: drm/amdkfd: fix 32-bit overflow in CWSR total size calculation (CVE-2026-68257)
* kernel: drm/xe/rtp: Add RING_FORCE_TO_NONPRIV_DENY to OA whitelists (CVE-2026-68267)
* kernel: drm/xe: Hold a dma-buf reference for imported BOs (CVE-2026-68266)
* kernel: drm/amdgpu: Fix context pstate override handling (CVE-2026-68273)
* kernel: Linux kernel IPVS: Denial of Service due to stale memory references (CVE-2026-80714)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
CVE-2025-40323
In the Linux kernel, the following vulnerability has been resolved: fbcon: Set fb_display[i]->mode to NULL when the mode is released Recently, we discovered the following issue through syzkaller: BUG: KASAN: slab-use-after-free in fb_mode_is_equal+0x285/0x2f0 Read of size 4 at addr ff11000001b3c69c by task syz.xxx ... Call Trace: dump_stack_lvl+0xab/0xe0 print_address_description.constprop.0+0x2c/0x390 print_report+0xb9/0x280 kasan_report+0xb8/0xf0 fb_mode_is_equal+0x285/0x2f0 fbcon_mode_deleted+0x129/0x180 fb_set_var+0xe7f/0x11d0 do_fb_ioctl+0x6a0/0x750 fb_ioctl+0xe0/0x140 __x64_sys_ioctl+0x193/0x210 do_syscall_64+0x5f/0x9c0 entry_SYSCALL_64_after_hwframe+0x76/0x7e Based on experimentation and analysis, during framebuffer unregistration, only the memory of fb_info->modelist is freed, without setting the corresponding fb_display[i]->mode to NULL for the freed modes. This leads to UAF issues during subsequent accesses. Here's an example of reproduction steps: 1. With /dev/fb0 already registered in the system, load a kernel module to register a new device /dev/fb1; 2. Set fb1's mode to the global fb_display[] array (via FBIOPUT_CON2FBMAP); 3. Switch console from fb to VGA (to allow normal rmmod of the ko); 4. Unload the kernel module, at this point fb1's modelist is freed, leaving a wild pointer in fb_display[]; 5. Trigger the bug via system calls through fb0 attempting to delete a mode from fb0. Add a check in do_unregister_framebuffer(): if the mode to be freed exists in fb_display[], set the corresponding mode pointer to NULL.
CVE-2026-31539
In the Linux kernel, the following vulnerability has been resolved: smb: smbdirect: introduce smbdirect_socket.recv_io.credits.available The logic off managing recv credits by counting posted recv_io and granted credits is racy. That's because the peer might already consumed a credit, but between receiving the incoming recv at the hardware and processing the completion in the 'recv_done' functions we likely have a window where we grant credits, which don't really exist. So we better have a decicated counter for the available credits, which will be incremented when we posted new recv buffers and drained when we grant the credits to the peer.
CVE-2026-46199
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vcn4: Prevent OOB reads when parsing dec msg Check bounds against the end of the BO whenever we access the msg.
CVE-2026-46204
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vcn4: Prevent OOB reads when parsing IB Rewrite the IB parsing to use amdgpu_ib_get_value() which handles the bounds checks.
CVE-2026-46230
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vcn3: Prevent OOB reads when parsing dec msg Check bounds against the end of the BO whenever we access the msg.
CVE-2026-46311
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/userq: fix access to stale wptr mapping Use drm_exec to take both locks i.e vm root bo and wptr_obj bo to access the mapping data properly. This fixes the security issue of unmap the wptr_obj while a queue creation is in progress and passing other bo at same address. (cherry picked from commit 1fc6c8ab45dbee096469c08c13f6099d57a52d6c)
CVE-2026-52912
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_queue: hold bridge skb->dev while queued br_pass_frame_up() rewrites skb->dev from the ingress port to the bridge master before queueing bridge LOCAL_IN packets. NFQUEUE only holds references on state.in/out and bridge physdevs, so a queued bridge packet can retain a freed bridge master in skb->dev until reinjection. When the verdict is reinjected later, br_netif_receive_skb() re-enters the receive path with skb->dev still pointing at the freed bridge master, triggering a use-after-free. Store skb->dev in the queue entry, hold a reference on it for the queue lifetime, and use the saved device when dropping queued packets during NETDEV_DOWN handling.
CVE-2026-53203
In the Linux kernel, the following vulnerability has been resolved: accel/ivpu: Add buffer overflow check in MS get_info_ioctl Add validation that the info size returned from the metric stream info query is not exceeded when checked against the allocated buffer size. If the firmware returns a size larger than the buffer, reject the operation with -EOVERFLOW instead of proceeding with an incorrect buffer copy.
CVE-2026-53290
In the Linux kernel, the following vulnerability has been resolved: drm/xe/eustall: Fix drm_dev_put called before stream disable in close In xe_eu_stall_stream_close(), drm_dev_put() is called before the stream is disabled and its resources are freed. If this drops the last reference, the device structures could be freed while the subsequent cleanup code still accesses them, leading to a use-after-free. Fix this by moving drm_dev_put() after all device accesses are complete. This matches the ordering in xe_oa_release(). (cherry picked from commit 35aff528f7297e949e5e19c9cd7fd748cf1cf21c)
CVE-2026-64098
In the Linux kernel, the following vulnerability has been resolved: drm/virtio: use uninterruptible resv lock for plane updates virtio_gpu_cursor_plane_update() and virtio_gpu_resource_flush() lock the framebuffer BO's dma_resv via virtio_gpu_array_lock_resv() and ignore its return value. The function can fail with -EINTR from dma_resv_lock_interruptible() (signal during lock wait) or with -ENOMEM from dma_resv_reserve_fences() (fence slot allocation), leaving the resv lock not held. The queue path then walks the object array and calls dma_resv_add_fence(), which requires the lock held; with lockdep enabled this trips dma_resv_assert_held(): WARNING: drivers/dma-buf/dma-resv.c:296 at dma_resv_add_fence+0x71e/0x840 Call Trace: virtio_gpu_array_add_fence virtio_gpu_queue_ctrl_sgs virtio_gpu_queue_fenced_ctrl_buffer virtio_gpu_cursor_plane_update drm_atomic_helper_commit_planes drm_atomic_helper_commit_tail commit_tail drm_atomic_helper_commit drm_atomic_commit drm_atomic_helper_update_plane __setplane_atomic drm_mode_cursor_universal drm_mode_cursor_common drm_mode_cursor_ioctl drm_ioctl __x64_sys_ioctl Beyond the WARN, mutating the dma_resv fence list without the lock races with concurrent readers/writers and can corrupt the list. Both call sites run inside the .atomic_update plane callback, which DRM atomic helpers do not allow to fail (by the time it runs, the commit has been signed off to userspace and there is no clean rollback path). Moving the lock acquisition to .prepare_fb was rejected because the broader lock scope deadlocks against other BO locking paths in the same atomic commit. Introduce virtio_gpu_lock_one_resv_uninterruptible() that uses dma_resv_lock() instead of dma_resv_lock_interruptible(). This eliminates the -EINTR failure mode -- the realistic syzbot trigger -- without extending the lock hold across the commit. The helper locks a single BO and rejects nents > 1 with -EINVAL; both fix sites lock exactly one BO. Use it from virtio_gpu_cursor_plane_update() and virtio_gpu_resource_flush(); check the return value to handle the remaining -ENOMEM case from dma_resv_reserve_fences() by freeing the objs and skipping the plane update for that frame. The framebuffer BOs touched here are not shared with other contexts and lock contention is expected to be brief, so the loss of signal-interruptibility is acceptable. Other callers of virtio_gpu_array_lock_resv() (the ioctl paths) continue to use the interruptible variant. The bug was reported by syzbot, triggered via fault injection (fail_nth) on the DRM_IOCTL_MODE_CURSOR path, which forces the -ENOMEM branch in dma_resv_reserve_fences().
CVE-2026-68108
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vce: fix integer overflow in image size Fix a security vulnerability where malicious VCE command streams with oversized dimensions (e.g. 65536×65536) cause 32-bit integer overflow, wrapping the calculated buffer size to 0. This bypasses validation and allows GPU firmware to perform out-of-bound memory access. The fix uses 64-bit arithmetic to detect overflow and rejects invalid dimensions before they reach the hardware. V2: remove redundant check V3: modify max height value V4: remove size64 (cherry picked from commit cbe408dba581755ad1279a487ec786d8927d778d)
CVE-2026-68121
In the Linux kernel, the following vulnerability has been resolved: pppoe: reload header pointer after dev_hard_header() pppoe_sendmsg() saves a pointer to the PPPoE header before calling dev_hard_header(). Device header callbacks are allowed to reallocate the skb head, invalidating pointers into it. This can happen when a send is blocked in copy_from_user() while the first non-Ethernet port is added to an empty team device. The team's delegated GRE header callback then expands the skb head. PPPoE subsequently writes six bytes through the stale pointer into the freed head. Reload the PPPoE header through the skb's network-header offset after device header creation. pskb_expand_head() updates that offset when it relocates the head.
CVE-2026-68257
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: fix 32-bit overflow in CWSR total size calculation total_cwsr_size was computed in 32-bit before being used as a BO/SVM allocation size. With large ctx_save_restore_area_size and debug_memory_size multiplied by the XCC count, the product can wrap, yielding an undersized CWSR save area that firmware later overruns. Promote total_cwsr_size to u64 and use check_add_overflow()/ check_mul_overflow() in both kfd_queue_acquire_buffers() and kfd_queue_release_buffers(). (cherry picked from commit 319f7e13423ae3f486b9aea82f9ad2d6af0ee608)
CVE-2026-68266
In the Linux kernel, the following vulnerability has been resolved: drm/xe: Hold a dma-buf reference for imported BOs An imported dma-buf BO is created as a ttm_bo_type_sg BO whose reservation object is the exporter's dma_buf->resv. The importer, however, only takes a dma-buf reference after a successful dma_buf_dynamic_attach(). Until then nothing keeps the exporter alive, so if the exporter is freed while the BO still references its resv, a later access to that resv is a use-after-free: Oops: general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b9c Workqueue: ttm ttm_bo_delayed_delete [ttm] RIP: 0010:mutex_can_spin_on_owner+0x3f/0xc0 This can be reached on two paths: - dma_buf_dynamic_attach() fails, or - ttm_bo_init_reserved() fails during BO creation. In both cases the BO already has bo->base.resv pointing at the exporter resv, and sg BOs are always torn down via ttm_bo_delayed_delete(), which locks bo->base.resv asynchronously - potentially after the exporter has been freed. Take the dma-buf reference in xe_bo_init_locked(), before ttm_bo_init_reserved(), so it also covers a creation failure there, and release it in xe_ttm_bo_destroy(). The reference is held for the whole BO lifetime, keeping the shared resv alive on every path. v2: - Reworked the fix to avoid creating the imported sg BO before dma_buf_dynamic_attach() succeeds. - Attach with importer_priv == NULL and make invalidate_mappings ignore incomplete imports. v3: - Dropped the xe-side reordering approach since importer_priv must be valid when dma_buf_dynamic_attach() publishes the attachment. - Per Christian's suggestion on the v1 thread, keyed the check on import_attach rather than removing the sg guard entirely. - Fixes both xe and amdgpu in a single TTM patch. v4: - Moved import_attach check to after dma_resv_copy_fences() so fences are copied before returning for successful imports (Thomas). - Removed exporter-alive claim from commit message (Thomas). v5: - Add drm/xe patch to keep imported sg BOs off the LRU before attach succeeds; the TTM fix alone is not sufficient for xe if the BO is already LRU-visible. (Thomas) v4 patch: https://patchwork.freedesktop.org/patch/736663/?series=169129&rev=2 - Patch 1 (drm/ttm) carries Christian's Reviewed-by from v4. v6: - Reworked the fix based on Thomas' suggestion. Instead of the TTM resv individualization (v1-v5) plus the xe off-LRU/placement handling (v5), just hold a dma-buf reference for the imported BO lifetime so the shared resv can never be freed while the BO still references it. Single xe patch, no TTM change. (Thomas) - Take the reference in xe_bo_init_locked() before ttm_bo_init_reserved() so a TTM creation failure is covered too (Thomas). - Dropped the v5 series (drm/ttm + drm/xe off-LRU); the off-LRU approach also regressed in CI BAT via ttm_bo_pipeline_gutting() creating a ghost BO that outlived the exporter. Link to v5: https://patchwork.freedesktop.org/series/169984/ v7: - Move changelog above --- so it stays in the commit message. - Reorder changelog entries oldest-to-newest. (Thomas) (cherry picked from commit 3516f3fae6be35642f8f06f8a218da6425c0306a)
CVE-2026-68267
In the Linux kernel, the following vulnerability has been resolved: drm/xe/rtp: Add RING_FORCE_TO_NONPRIV_DENY to OA whitelists Unconditionally whitelisting OA registers is a security violation. Set RING_FORCE_TO_NONPRIV_DENY bit in OA nonpriv slots, so that OA registers don't get whitelisted by default after probe, gt reset, resume and engine reset. (cherry picked from commit 90511bdcfda97211c01f1d945d4ea616578d8fca)
CVE-2026-68273
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Fix context pstate override handling There are several problems in the context pstate handling code. The most serious ones are potential use-after-free and NULL pointer dereferences at context initialization time. Both are due amdgpu_ctx_init() not holding the adev->pm.stable_pstate_ctx_lock, which is otherwise used from both sysfs and the context code itself for modifying and clearing the stored context pointer. Second issue is that context fini can trample over the pstate configuration set via sysfs. This is due the restore state (ctx->stable_pstate) being saved at context init time, and not if, or when the context actually changes the pstate. As the context exits it will therefore incorrectly restore to what was set before the sysfs override was requested. The simplest fix is to drastically simplify how the state is tracked, by clearly defining the points at which pstate ownership is taken and released, and to handle all transitions under the correct lock. Instead of at context init time, the previous state is saved only at the point the context overrides the current state, and is restored on context exit only if the context is still the owner of the current override state. (cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)
CVE-2026-80714
In the Linux kernel, the following vulnerability has been resolved: ipvs: do not propagate one-packet flag to synced conns Synced connections can be created before their destination exists. When the destination is later added, ip_vs_bind_dest() copies connection flags from the destination into cp->flags. IP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced connection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed, expiry can treat it as a one-packet connection and skip unlinking the existing conn_tab node, leaving stale hash nodes pointing at a freed struct ip_vs_conn. Drop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced connections.
Update packages.
In the Linux kernel, the following vulnerability has been resolved: fbcon: Set fb_display[i]->mode to NULL when the mode is released Recently, we discovered the following issue through syzkaller: BUG: KASAN: slab-use-after-free in fb_mode_is_equal+0x285/0x2f0 Read of size 4 at addr ff11000001b3c69c by task syz.xxx ... Call Trace: <TASK> dump_stack_lvl+0xab/0xe0 print_address_description.constprop.0+0x2c/0x390 print_report+0xb9/0x280 kasan_report+0xb8/0xf0 fb_mode_is_equal+0x285/0x2f0 fbcon_mode_deleted+0x129/0x180 fb_set_var+0xe7f/0x11d0 do_fb_ioctl+0x6a0/0x750 fb_ioctl+0xe0/0x140 __x64_sys_ioctl+0x193/0x210 do_syscall_64+0x5f/0x9c0 entry_SYSCALL_64_after_hwframe+0x76/0x7e Based on experimentation and analysis, during framebuffer unregistration, only the memory of fb_info->modelist is freed, without setting the corresponding fb_display[i]->mode to NULL for the freed modes. This leads to UAF issues during subsequent accesses. Here's an example of reproduction steps: 1. With /dev/fb0 already registered in the system, load a kernel module to register a new device /dev/fb1; 2. Set fb1's mode to the global fb_display[] array (via FBIOPUT_CON2FBMAP); 3. Switch console from fb to VGA (to allow normal rmmod of the ko); 4. Unload the kernel module, at this point fb1's modelist is freed, leaving a wild pointer in fb_display[]; 5. Trigger the bug via system calls through fb0 attempting to delete a mode from fb0. Add a check in do_unregister_framebuffer(): if the mode to be freed exists in fb_display[], set the corresponding mode pointer to NULL.
In the Linux kernel, the following vulnerability has been resolved: smb: smbdirect: introduce smbdirect_socket.recv_io.credits.available The logic off managing recv credits by counting posted recv_io and granted credits is racy. That's because the peer might already consumed a credit, but between receiving the incoming recv at the hardware and processing the completion in the 'recv_done' functions we likely have a window where we grant credits, which don't really exist. So we better have a decicated counter for the available credits, which will be incremented when we posted new recv buffers and drained when we grant the credits to the peer.
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vcn4: Prevent OOB reads when parsing dec msg Check bounds against the end of the BO whenever we access the msg.
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vcn4: Prevent OOB reads when parsing IB Rewrite the IB parsing to use amdgpu_ib_get_value() which handles the bounds checks.
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vcn3: Prevent OOB reads when parsing dec msg Check bounds against the end of the BO whenever we access the msg.
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/userq: fix access to stale wptr mapping Use drm_exec to take both locks i.e vm root bo and wptr_obj bo to access the mapping data properly. This fixes the security issue of unmap the wptr_obj while a queue creation is in progress and passing other bo at same address. (cherry picked from commit 1fc6c8ab45dbee096469c08c13f6099d57a52d6c)
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_queue: hold bridge skb->dev while queued br_pass_frame_up() rewrites skb->dev from the ingress port to the bridge master before queueing bridge LOCAL_IN packets. NFQUEUE only holds references on state.in/out and bridge physdevs, so a queued bridge packet can retain a freed bridge master in skb->dev until reinjection. When the verdict is reinjected later, br_netif_receive_skb() re-enters the receive path with skb->dev still pointing at the freed bridge master, triggering a use-after-free. Store skb->dev in the queue entry, hold a reference on it for the queue lifetime, and use the saved device when dropping queued packets during NETDEV_DOWN handling.
In the Linux kernel, the following vulnerability has been resolved: accel/ivpu: Add buffer overflow check in MS get_info_ioctl Add validation that the info size returned from the metric stream info query is not exceeded when checked against the allocated buffer size. If the firmware returns a size larger than the buffer, reject the operation with -EOVERFLOW instead of proceeding with an incorrect buffer copy.
In the Linux kernel, the following vulnerability has been resolved: drm/xe/eustall: Fix drm_dev_put called before stream disable in close In xe_eu_stall_stream_close(), drm_dev_put() is called before the stream is disabled and its resources are freed. If this drops the last reference, the device structures could be freed while the subsequent cleanup code still accesses them, leading to a use-after-free. Fix this by moving drm_dev_put() after all device accesses are complete. This matches the ordering in xe_oa_release(). (cherry picked from commit 35aff528f7297e949e5e19c9cd7fd748cf1cf21c)
In the Linux kernel, the following vulnerability has been resolved: drm/virtio: use uninterruptible resv lock for plane updates virtio_gpu_cursor_plane_update() and virtio_gpu_resource_flush() lock the framebuffer BO's dma_resv via virtio_gpu_array_lock_resv() and ignore its return value. The function can fail with -EINTR from dma_resv_lock_interruptible() (signal during lock wait) or with -ENOMEM from dma_resv_reserve_fences() (fence slot allocation), leaving the resv lock not held. The queue path then walks the object array and calls dma_resv_add_fence(), which requires the lock held; with lockdep enabled this trips dma_resv_assert_held(): WARNING: drivers/dma-buf/dma-resv.c:296 at dma_resv_add_fence+0x71e/0x840 Call Trace: virtio_gpu_array_add_fence virtio_gpu_queue_ctrl_sgs virtio_gpu_queue_fenced_ctrl_buffer virtio_gpu_cursor_plane_update drm_atomic_helper_commit_planes drm_atomic_helper_commit_tail commit_tail drm_atomic_helper_commit drm_atomic_commit drm_atomic_helper_update_plane __setplane_atomic drm_mode_cursor_universal drm_mode_cursor_common drm_mode_cursor_ioctl drm_ioctl __x64_sys_ioctl Beyond the WARN, mutating the dma_resv fence list without the lock races with concurrent readers/writers and can corrupt the list. Both call sites run inside the .atomic_update plane callback, which DRM atomic helpers do not allow to fail (by the time it runs, the commit has been signed off to userspace and there is no clean rollback path). Moving the lock acquisition to .prepare_fb was rejected because the broader lock scope deadlocks against other BO locking paths in the same atomic commit. Introduce virtio_gpu_lock_one_resv_uninterruptible() that uses dma_resv_lock() instead of dma_resv_lock_interruptible(). This eliminates the -EINTR failure mode -- the realistic syzbot trigger -- without extending the lock hold across the commit. The helper locks a single BO and rejects nents > 1 with -EINVAL; both fix sites lock exactly one BO. Use it from virtio_gpu_cursor_plane_update() and virtio_gpu_resource_flush(); check the return value to handle the remaining -ENOMEM case from dma_resv_reserve_fences() by freeing the objs and skipping the plane update for that frame. The framebuffer BOs touched here are not shared with other contexts and lock contention is expected to be brief, so the loss of signal-interruptibility is acceptable. Other callers of virtio_gpu_array_lock_resv() (the ioctl paths) continue to use the interruptible variant. The bug was reported by syzbot, triggered via fault injection (fail_nth) on the DRM_IOCTL_MODE_CURSOR path, which forces the -ENOMEM branch in dma_resv_reserve_fences().
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/vce: fix integer overflow in image size Fix a security vulnerability where malicious VCE command streams with oversized dimensions (e.g. 65536×65536) cause 32-bit integer overflow, wrapping the calculated buffer size to 0. This bypasses validation and allows GPU firmware to perform out-of-bound memory access. The fix uses 64-bit arithmetic to detect overflow and rejects invalid dimensions before they reach the hardware. V2: remove redundant check V3: modify max height value V4: remove size64 (cherry picked from commit cbe408dba581755ad1279a487ec786d8927d778d)
In the Linux kernel, the following vulnerability has been resolved: pppoe: reload header pointer after dev_hard_header() pppoe_sendmsg() saves a pointer to the PPPoE header before calling dev_hard_header(). Device header callbacks are allowed to reallocate the skb head, invalidating pointers into it. This can happen when a send is blocked in copy_from_user() while the first non-Ethernet port is added to an empty team device. The team's delegated GRE header callback then expands the skb head. PPPoE subsequently writes six bytes through the stale pointer into the freed head. Reload the PPPoE header through the skb's network-header offset after device header creation. pskb_expand_head() updates that offset when it relocates the head.
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: fix 32-bit overflow in CWSR total size calculation total_cwsr_size was computed in 32-bit before being used as a BO/SVM allocation size. With large ctx_save_restore_area_size and debug_memory_size multiplied by the XCC count, the product can wrap, yielding an undersized CWSR save area that firmware later overruns. Promote total_cwsr_size to u64 and use check_add_overflow()/ check_mul_overflow() in both kfd_queue_acquire_buffers() and kfd_queue_release_buffers(). (cherry picked from commit 319f7e13423ae3f486b9aea82f9ad2d6af0ee608)
In the Linux kernel, the following vulnerability has been resolved: drm/xe: Hold a dma-buf reference for imported BOs An imported dma-buf BO is created as a ttm_bo_type_sg BO whose reservation object is the exporter's dma_buf->resv. The importer, however, only takes a dma-buf reference after a successful dma_buf_dynamic_attach(). Until then nothing keeps the exporter alive, so if the exporter is freed while the BO still references its resv, a later access to that resv is a use-after-free: Oops: general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b9c Workqueue: ttm ttm_bo_delayed_delete [ttm] RIP: 0010:mutex_can_spin_on_owner+0x3f/0xc0 This can be reached on two paths: - dma_buf_dynamic_attach() fails, or - ttm_bo_init_reserved() fails during BO creation. In both cases the BO already has bo->base.resv pointing at the exporter resv, and sg BOs are always torn down via ttm_bo_delayed_delete(), which locks bo->base.resv asynchronously - potentially after the exporter has been freed. Take the dma-buf reference in xe_bo_init_locked(), before ttm_bo_init_reserved(), so it also covers a creation failure there, and release it in xe_ttm_bo_destroy(). The reference is held for the whole BO lifetime, keeping the shared resv alive on every path. v2: - Reworked the fix to avoid creating the imported sg BO before dma_buf_dynamic_attach() succeeds. - Attach with importer_priv == NULL and make invalidate_mappings ignore incomplete imports. v3: - Dropped the xe-side reordering approach since importer_priv must be valid when dma_buf_dynamic_attach() publishes the attachment. - Per Christian's suggestion on the v1 thread, keyed the check on import_attach rather than removing the sg guard entirely. - Fixes both xe and amdgpu in a single TTM patch. v4: - Moved import_attach check to after dma_resv_copy_fences() so fences are copied before returning for successful imports (Thomas). - Removed exporter-alive claim from commit message (Thomas). v5: - Add drm/xe patch to keep imported sg BOs off the LRU before attach succeeds; the TTM fix alone is not sufficient for xe if the BO is already LRU-visible. (Thomas) v4 patch: https://patchwork.freedesktop.org/patch/736663/?series=169129&rev=2 - Patch 1 (drm/ttm) carries Christian's Reviewed-by from v4. v6: - Reworked the fix based on Thomas' suggestion. Instead of the TTM resv individualization (v1-v5) plus the xe off-LRU/placement handling (v5), just hold a dma-buf reference for the imported BO lifetime so the shared resv can never be freed while the BO still references it. Single xe patch, no TTM change. (Thomas) - Take the reference in xe_bo_init_locked() before ttm_bo_init_reserved() so a TTM creation failure is covered too (Thomas). - Dropped the v5 series (drm/ttm + drm/xe off-LRU); the off-LRU approach also regressed in CI BAT via ttm_bo_pipeline_gutting() creating a ghost BO that outlived the exporter. Link to v5: https://patchwork.freedesktop.org/series/169984/ v7: - Move changelog above --- so it stays in the commit message. - Reorder changelog entries oldest-to-newest. (Thomas) (cherry picked from commit 3516f3fae6be35642f8f06f8a218da6425c0306a)
In the Linux kernel, the following vulnerability has been resolved: drm/xe/rtp: Add RING_FORCE_TO_NONPRIV_DENY to OA whitelists Unconditionally whitelisting OA registers is a security violation. Set RING_FORCE_TO_NONPRIV_DENY bit in OA nonpriv slots, so that OA registers don't get whitelisted by default after probe, gt reset, resume and engine reset. (cherry picked from commit 90511bdcfda97211c01f1d945d4ea616578d8fca)
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Fix context pstate override handling There are several problems in the context pstate handling code. The most serious ones are potential use-after-free and NULL pointer dereferences at context initialization time. Both are due amdgpu_ctx_init() not holding the adev->pm.stable_pstate_ctx_lock, which is otherwise used from both sysfs and the context code itself for modifying and clearing the stored context pointer. Second issue is that context fini can trample over the pstate configuration set via sysfs. This is due the restore state (ctx->stable_pstate) being saved at context init time, and not if, or when the context actually changes the pstate. As the context exits it will therefore incorrectly restore to what was set before the sysfs override was requested. The simplest fix is to drastically simplify how the state is tracked, by clearly defining the points at which pstate ownership is taken and released, and to handle all transitions under the correct lock. Instead of at context init time, the previous state is saved only at the point the context overrides the current state, and is restored on context exit only if the context is still the owner of the current override state. (cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)
In the Linux kernel, the following vulnerability has been resolved: ipvs: do not propagate one-packet flag to synced conns Synced connections can be created before their destination exists. When the destination is later added, ip_vs_bind_dest() copies connection flags from the destination into cp->flags. IP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced connection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed, expiry can treat it as a one-packet connection and skip unlinking the existing conn_tab node, leaving stale hash nodes pointing at a freed struct ip_vs_conn. Drop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced connections.
N/A
SRPMS
- kernel-5.14.0-687.52.1.el9_8.src.rpm
MD5: e31ef8cad626c2b78b7eb38fd544d90c
SHA-256: 835059e4a7bcc95667eb77770c656d53902d652aee4d844e6ca61b5beddd572a
Size: 145.56 MB
Asianux Server 9 for x86_64
- kernel-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 5f35e5921aba57febcf27f919a7d4af9
SHA-256: 161c743fc8a30cf3522317a01e3813be9970c8685e4c4c4891a7260fb3443c10
Size: 1.03 MB - kernel-abi-stablelists-5.14.0-687.52.1.el9_8.noarch.rpm
MD5: d940023baee0def631ade3335c18a248
SHA-256: 9072b6b01d3155215c4ac843432d3aba6293911a9b014711d63d20fd9c876c8c
Size: 1.06 MB - kernel-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 4fd5ce95f42587ce0f88f5938210dffb
SHA-256: 2faae16a6e86fa0de1bb9c2cd07a851e240d26518c11183096836020482b9797
Size: 17.35 MB - kernel-cross-headers-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: c14b671b660b944bfc0694d17b8d2736
SHA-256: e773e01afecafb6750928b8ef1f2c0fb86d10ee5be835599e7b679bb90011c1e
Size: 8.09 MB - kernel-debug-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 702d579c6bb3846fcef24b936356454d
SHA-256: 2cbaaf851032f73524b33420bcc313420d94314b438b1b1c2170dbf697c16d3a
Size: 1.03 MB - kernel-debug-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: f924337aabc40494256f56ad2ca75faf
SHA-256: bf38a30daddf1b0e4d11bb750bd8eff59bdab4bec21d0ed533f47154e4764a86
Size: 31.22 MB - kernel-debug-devel-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 342eb83206fb76156e0df25656f7c93e
SHA-256: 282f20ad854639fb4c0ca19e0affa5ae60f9d4d5e2cc061c14854c7761b25678
Size: 21.45 MB - kernel-debug-devel-matched-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 23edbc1ba703ef524ab59a36f04466b5
SHA-256: 675c72daeda13841238f6bf3e21b4e6594961d9254e960d5c1146cca47fc0bbf
Size: 1.03 MB - kernel-debug-modules-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: ec5aec453647cb44f6f2cf0ed6e3daa5
SHA-256: 1bbf1972ce84a814bcba2319eeb3d9b31a574df4ef1a17d38435b402bcb7a329
Size: 70.23 MB - kernel-debug-modules-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: c78d6db1c708c54e7923d7c7a5164886
SHA-256: a5840571c6739d4d7d84f67f6dcdf2ef55a98c54e110bc6a2b6493a7f06cc7ab
Size: 49.92 MB - kernel-debug-modules-extra-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: ea52448e1d2583344fc833d650aeea8a
SHA-256: b7cc8332805b7a6a7297bfeecb51cdf7cef20789d87f723bae5d6e4667e5ed3c
Size: 1.83 MB - kernel-debug-uki-virt-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: e5ee159759568fb8128c1918992aff57
SHA-256: 65ba7664caa488649d788ebc303960edc00bfcf481a4342d8bbebd8960cfa10b
Size: 88.19 MB - kernel-devel-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 255587c778255d050bc25dc7fa55e237
SHA-256: 88e683ee3a91e4b64953ede5215f673fcbd0dcd51a982e9651b6c95db92898c7
Size: 21.25 MB - kernel-devel-matched-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: ee01ffe033d4b6f5f7804542a5747586
SHA-256: 87550b170f54c4cd10128b6b8d0e95f12ef043112e3f0b7b32db8b3dd9a45b06
Size: 1.03 MB - kernel-doc-5.14.0-687.52.1.el9_8.noarch.rpm
MD5: d13bd3f8fac419a6b4f60f2bcbfc39ff
SHA-256: e90a0a63bad9ea948827b445a9167f53483c3464e53f54a81d50aa327abfcee6
Size: 39.04 MB - kernel-headers-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 018124aa41cc01bf1afe696f34d30bd7
SHA-256: 2db67510f1495998e61c0c1bf09b0382dc4024ced17b1381811ebc77444be96d
Size: 2.82 MB - kernel-modules-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 5e696a9df7a21ecf7fba6d99d29da433
SHA-256: 42840178976e1cb28066735b33dbd012811fcbce0b3e8fbc258b5a2317931e1c
Size: 40.03 MB - kernel-modules-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: d1b326cdf14d7b4065fb63f426e0ed75
SHA-256: 3889b68a727526eb8ce7ad582cc3158d38c9a94313c562ef1ff6a1038ad573c2
Size: 31.09 MB - kernel-modules-extra-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: fc1e4f45e4f0a7ffc6daf48b289ad01b
SHA-256: b99186cbe18815c1388d7980c7931d82f823a503cd0d258b0478e08e87b67bc6
Size: 1.46 MB - kernel-rt-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: b58816ac0c50d9e6c4114cd88375cf44
SHA-256: de3555528bbd7028dda8f6a555d25b5fa537b95e97f9a4628e236e0bd5c0b06f
Size: 1.03 MB - kernel-rt-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 6447473fbc80529a8f16fa13fa9988cf
SHA-256: 4100567a85294fc4a10b32d8a90e7e744dc47c9d4ce80fbb65952238c0bb33b4
Size: 17.26 MB - kernel-rt-debug-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 731fc4ae6651776c89b2459ede5f0184
SHA-256: 887ffc207f8cb58121d7ba442db8c46c249c44e332c7f031d76504dec30da6c5
Size: 1.03 MB - kernel-rt-debug-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 4aa49d0ec1ee8ab8f35e53a0b5ac0015
SHA-256: e9168fd6a60a8d2687a05a2ef3372621edbf44ddf8976ae7fff3efd2217bb300
Size: 18.71 MB - kernel-rt-debug-devel-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: f096abade5bb507def5da235bd5172fc
SHA-256: fa77fbde6e0d2d85e6fd751d8730b7a4c1aebecbe6a8b40ee6078d9f330a021b
Size: 21.39 MB - kernel-rt-debug-modules-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 9aea2587141fe32b1f68a80bb71a3e72
SHA-256: 85bbb153fb3d5710b0b8b07bb408925e1c14b770e8405d993cd123569a49ab97
Size: 41.61 MB - kernel-rt-debug-modules-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 5205156100c1a848b527b3bb844d4220
SHA-256: e2b9863c67d0aaa88f1ab4ea7406d8137af41412e3caf78c896a192b71f09c4c
Size: 32.27 MB - kernel-rt-debug-modules-extra-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 8d48cfb73802eb651b9108a3d2d38186
SHA-256: f5a0e2910dcde19a81f2511185121a68af9b80162435314ad62fb0183dd66181
Size: 1.49 MB - kernel-rt-devel-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 5b106c86d86f21222cd26046ea4cec0f
SHA-256: 578720204f1620e36fc3dfe7254ec3fd44f44804745f2d3b92c83fa3d1ad06ac
Size: 21.24 MB - kernel-rt-modules-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 26a21bd781a7912b80303e81c75679e5
SHA-256: e07e92129664d6ef98e964e69e9b1a6f0806e3e0eef607fb11cb4fe69672d39b
Size: 40.07 MB - kernel-rt-modules-core-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: e4bc77544af5b41f214d65e5c30f7f13
SHA-256: ca75854a00644d72b37633e4c8e99bce19cbb2157994bc930164ff97a79ca6fc
Size: 31.17 MB - kernel-rt-modules-extra-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: ab6dccf0cc7dfc908b87b4a89aa7b186
SHA-256: 8490cd0ace8479ef521b54dfd2d55e2bcff1c8d09d04fcd794b9e834422a1a3f
Size: 1.47 MB - kernel-tools-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 6325d3f9deb8b32c8525d24711db6b92
SHA-256: b850d41f21cfcffcd191c79e3fe3aaf43ae0f6d196e218fd9f65387338969eb8
Size: 1.32 MB - kernel-tools-libs-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: f5477c4e3869b38c7e92852588f41e52
SHA-256: b3b92344c152c47bf37f756d533ee968394af4b86bed2bacd208a4e1360ed57b
Size: 1.04 MB - kernel-tools-libs-devel-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: eff7d95cf6152b8e6c21bf327516afb4
SHA-256: 220b1e260b9fd0d89a70fe49e9bfc20519434d78914d5cddf9b3bb145ca25254
Size: 1.03 MB - kernel-uki-virt-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 30b5acbae30e0295cef0686993602b93
SHA-256: 33be13b8d3c24da515d8ff9dc99ffd0f2a51fed1fecfa0f91c0a23fece4e53ff
Size: 66.05 MB - kernel-uki-virt-addons-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 4c86d6eaa62696dc618ada0dea4a63a0
SHA-256: 78083eba39fe9e95722866754e1b61dada300054709437a59b0d9c14f44b89d6
Size: 1.05 MB - libperf-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: d236663b18cd68c35e87a24ed1221c65
SHA-256: d06fd8ae58604026a832fde103b6e0a5db535197c9ca4de4623c6d95c5baf61e
Size: 1.05 MB - perf-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 082c6189c33694f09c936f48c0369092
SHA-256: 0e1d50a93885897cc9e1184bfce6286b9775a810e8502f267bcbda56ab38d4f7
Size: 3.44 MB - python3-perf-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: d5ff2397bbd1f50773237006328855a5
SHA-256: 52e2cf2863d61fb5dc6db33d3d7fbae09644eb721f635782ff471f63ab42a1ac
Size: 2.61 MB - rtla-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 0e9dac2b446aad569f2a5f044ba03c0c
SHA-256: 98323a49b06cff713e8f09ad8ce4471cb871370a50f3a1418c9bb1cfb73197f2
Size: 1.10 MB - rv-5.14.0-687.52.1.el9_8.x86_64.rpm
MD5: 337682c55e99faaba84f71448f5898bd
SHA-256: 2971896091220867a41c55846bde297c8e2de19a9c15a258feda181855a6b174
Size: 1.04 MB