Back to search

Linux

Linux Kernel

See the latest tracked release, confirm when it was published, and subscribe for update emails.

Current version
Last checked: 2026-09-04

6.12.108

Release date
September 02, 2026
Security status
Current version appears affected by 14 high-severity CVEs.

Source

The Linux Kernel Archives

Public release notes are linked for the latest stored release.

Release history

See the latest published releases stored for this product.

Version Published Notes
6.12.108 2026-09-02 Release Notes
6.12.107 2026-08-28 Release Notes
6.12.106 2026-08-27 Release Notes
6.12.105 2026-08-23 Release Notes
6.12.104 2026-08-19 Release Notes
6.12.103 2026-08-09 Release Notes
6.12.102 2026-08-07 Release Notes
6.12.101 2026-08-03 Release Notes
6.12.100 2026-07-30 Release Notes
6.12.99 2026-07-29 Release Notes
6.12.98 2026-07-25 Release Notes
6.12.97 2026-07-24 Release Notes
6.12.96 2026-07-18 Release Notes
6.12.95 2026-07-04 Release Notes
6.12.94 2026-06-19 Release Notes
6.12.93 2026-06-09 Release Notes
6.12.92 2026-06-01 Release Notes
6.12.91 2026-05-23 Release Notes
6.12.90 2026-05-17 Release Notes
6.12.89 2026-05-15 Release Notes
6.12.88 2026-05-14 Release Notes
6.12.87 2026-05-08 Release Notes

Vulnerability tracking

versionPing monitors CVEs for this product. Matching CVEs are listed below. We only display CVEs with a CVSS score of 7.0 or higher that were published within the last 90 days.

Affected status is inferred from published affected version ranges where available. Always verify against the vendor advisory before making production decisions.

CVE Severity Published Status Summary
CVE-2026-80754 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: Input: synaptics-rmi4 - fix F55 transmitter electrode count typo During F55 sensor detection, the transmitter (TX) electrode count was incorrectly assigned the value of the receiver (RX) electrode count due to copy-paste typos. This incorrect value was then propagated to the driver data and used by F54 to determine the diagnostics report size. On devices with more RX than TX electrodes, this inflated the perceived TX count, leading to incorrect report size calculations and potential out-of-bounds buffer accesses. Fix the typos by correctly assigning the TX electrode counts.

Affected versions
  • From (including) 4.10 - Up to (excluding) 5.10.266
  • From (including) 4.10 - Up to (excluding) 5.15.217
Show 6 more
  • From (including) 4.10 - Up to (excluding) 6.1.184
  • From (including) 4.10 - Up to (excluding) 6.6.153
  • From (including) 4.10 - Up to (excluding) 6.12.105
  • From (including) 4.10 - Up to (excluding) 6.18.46
  • From (including) 4.10 - Up to (excluding) 7.1.10
  • From (including) 4.10 - Up to (excluding) 7.2
CVE-2026-80753 HIGH (8.4) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ovpn: run deferred work on a module-owned workqueue ovpn queues several work items whose callbacks execute module text. These works currently run on the global system workqueues, so module exit has no driver-owned drain point that guarantees the callbacks have fully returned before the module text can be freed. Object references protect the objects used by the callbacks, but they do not prove that a workqueue function has returned. In particular, a worker can drop the final reference that unblocks device teardown while it is still executing ovpn code. Add a module-owned workqueue and queue all ovpn work items on it. During module exit, unregister rtnl and netlink first, flush the workqueue so ordinary ovpn workers finish, run the final RCU barrier, and destroy the workqueue last. This keeps the workqueue available for cleanup work queued from RCU callbacks, while ensuring no ovpn work item can outlive the module text. The per-device delayed keepalive work remains explicitly disabled during netdev teardown (disable_delayed_work_sync in ndo_uninit), since flush_workqueue does not flush delayed work that is still only pending on its timer.

Affected versions
  • From (including) 6.16 - Up to (excluding) 7.1.10
  • From (including) 6.16 - Up to (excluding) 7.2
CVE-2026-80752 HIGH (8.4) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: Input: psxpad-spi - set driver data before use psxpad_spi_suspend() retrieves the controller state with spi_get_drvdata(), but probe never stores it, so suspend dereferences a NULL pointer. Store it during probe.

Affected versions
  • From (including) 4.12 - Up to (excluding) 5.10.266
  • From (including) 4.12 - Up to (excluding) 5.15.217
Show 6 more
  • From (including) 4.12 - Up to (excluding) 6.1.184
  • From (including) 4.12 - Up to (excluding) 6.6.153
  • From (including) 4.12 - Up to (excluding) 6.12.105
  • From (including) 4.12 - Up to (excluding) 6.18.46
  • From (including) 4.12 - Up to (excluding) 7.1.10
  • From (including) 4.12 - Up to (excluding) 7.2
CVE-2026-80751 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: pmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev() mtk_mfg_attach_dev() reads prev_o on the first iteration of its loop, in "if (prev_o && prev_o->freq == o->freq)", before prev_o is assigned at the end of the loop body. On that first iteration, evaluating prev_o reads an indeterminate value. If it is non-NULL, the condition dereferences a stale or invalid pointer, potentially faulting or incorrectly skipping the first OPP. Initialize prev_o to NULL. This matches the intent as well: there is no previous OPP to compare against on the first iteration. Found with Clang's -Wconditional-uninitialized.

Affected versions
  • From (including) 6.19 - Up to (excluding) 7.1.10
  • From (including) 6.19 - Up to (excluding) 7.2
CVE-2026-80750 HIGH (8.4) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: pmdomain: mediatek: fix remaining %pOF after of_node_put() scpsys_get_bus_protection_legacy() looks up several legacy bus protection regmaps from device-tree nodes. Two error paths put the device node before checking whether the regmap lookup failed, but still pass that node to dev_err_probe() with %pOF on failure. If of_node_put() drops the last reference, the later %pOF formatting can dereference a freed device node. Keep the node reference until after the error message has been emitted in the infracfg and SMI lookup paths. Also drop the SMI node before returning when the SMI phandle is missing.

Affected versions
  • From (including) 6.18 - Up to (excluding) 6.18.46
  • From (including) 6.18 - Up to (excluding) 7.1.10
Show 1 more
  • From (including) 6.18 - Up to (excluding) 7.2
CVE-2026-80749 HIGH (7.1) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: drm/connector/hdmi: Fix out of bounds memory read A helper function was copying a given audio infoframe into the connector's copy but using the size of the destination (a generic target, sized to accept many different data blocks) not the source (a very specific type of data block). Thus, it was copying 60 bytes of data from a 28 byte allocation. Fix that by using the source size instead, together with a build bug on the source size actually being smaller than the destination. I hit this running KUnit tests under KASAN (while debugging something else entirely). In the real world, it seems unlikely to cause an actual problem. It is a read not a write so it can't corrupt any memory. However, it could potentially fall off the end of a page and cause an accvio bug.

Affected versions
  • From (including) 6.11 - Up to (excluding) 6.12.105
  • From (including) 6.11 - Up to (excluding) 6.18.46
Show 2 more
  • From (including) 6.11 - Up to (excluding) 7.1.10
  • From (including) 6.11 - Up to (excluding) 7.2
CVE-2026-80748 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mmc: loongson2: Fix sg iteration in data reorder functions In ls2k0500_mmc_reorder_cmd_data() and ls2k2000_mmc_reorder_cmd_data(), the for_each_sg() macro already iterates over the scatterlist entries, with 'sg' pointing to the current entry. However, the code incorrectly uses '&sg[i]' and 'sg_dma_len(&sg[i])' inside the loop, which treats 'sg' as an array base and indexes it again, leading to access of wrong sg entries (or out-of-bounds if the list is not an array).

Affected versions
  • From (including) 6.17 - Up to (excluding) 6.18.46
  • From (including) 6.17 - Up to (excluding) 7.1.10
Show 1 more
  • From (including) 6.17 - Up to (excluding) 7.2
CVE-2026-80747 HIGH (8.0) 2026-09-03 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: Add bounds check for CRAT subtype length The CRAT parser validates that the subtype header fits within the image, but does not verify that the advertised subtype length fits. A malformed CRAT table with an oversized length field causes out-of-bounds reads when kfd_parse_subtype() casts the header to specific subtype structures. Add validation that sub_type_hdr + length does not exceed the image boundary before parsing the subtype contents. (cherry picked from commit 48e1d1e6e8798aef0312e68d8e586021b5b3cf4d)

Affected versions
  • From (including) 3.19 - Up to (excluding) 7.1.10
  • From (including) 3.19 - Up to (excluding) 7.2
CVE-2026-80745 HIGH (8.4) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: regulator: fp9931: Fix VPOS/VNEG voltage selector table The VPOSNEG_table[] mapping does not match the FP9931 datasheet. The datasheet defines the VPOS/VNEG voltage mapping as: 00h-04h -> 7.04V (-7.04V) 05h -> 7.26V (-7.26V) 06h -> 7.49V (-7.49V) ... 28h-3Fh -> 15.06V (-15.06V) However, VPOSNEG_table[] has two issues: 1. Selector 0x00~0x04 should all map to 7.04V (5 entries), but the table has 6 entries of 7.04V, causing all subsequent entries to be shifted by one position. 2. Selectors 0x29~0x3F should all clamp to 15.06V (23 entries), but the table has only 41 entries. Any selector value above 0x28 would result in an out-of-bounds table access. Fix both issues by removing the duplicate 7.04V entry and appending the missing 23 clamped 15.06V entries, bringing the table to the correct size of 64 entries (0x00~0x3F).

Affected versions
  • From (including) 6.19 - Up to (excluding) 7.1.10
  • From (including) 6.19 - Up to (excluding) 7.2
CVE-2026-80741 HIGH (7.1) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: drm/log: Fix out-of-bounds read on empty message length drm_log_draw_kmsg_record() accesses s[len - 1] to strip the trailing newline, but len is unsigned int. If len is 0, the subtraction wraps to UINT_MAX, causing an out-of-bounds read. Add an early return when len is 0.

Affected versions
  • From (including) 6.14 - Up to (excluding) 6.18.46
  • From (including) 6.14 - Up to (excluding) 7.1.10
Show 1 more
  • From (including) 6.14 - Up to (excluding) 7.2
CVE-2026-80738 HIGH (7.3) 2026-09-03 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: bpf: Check sk_state before sk_protocol in bpf_tcp_*_syncookie bpf_tcp_gen_syncookie and bpf_tcp_check_syncookie accept a socket pointer 'sk' with argument type ARG_PTR_TO_BTF_ID_SOCK_COMMON. However, they access sk->sk_protocol without validating whether 'sk' represents a full socket. Fix this issue by checking sk->sk_state != TCP_LISTEN before inspecting sk->sk_protocol in both bpf_tcp_gen_syncookie and bpf_tcp_check_syncookie. Since mini-sockets are never in the TCP_LISTEN state, the condition short-circuits and prevents dereferencing fullsock-specific fields.

Affected versions
  • From (including) 5.2 - Up to (excluding) 7.1.9
  • From (including) 5.2 - Up to (excluding) 7.2
CVE-2026-80737 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: serial: amba-pl011: synchronize DMA teardown dmaengine_terminate_all() does not wait for a running callback, so the TX callback can still touch the TX buffer after it is freed. The RX poll timer reads the RX buffers without the port lock. Switch to dmaengine_terminate_sync() and delete the RX timer before freeing the buffers.

Affected versions
  • From (including) 2.6.39 - Up to (excluding) 5.10.267
  • From (including) 2.6.39 - Up to (excluding) 5.15.218
Show 6 more
  • From (including) 2.6.39 - Up to (excluding) 6.1.185
  • From (including) 2.6.39 - Up to (excluding) 6.6.154
  • From (including) 2.6.39 - Up to (excluding) 6.12.106
  • From (including) 2.6.39 - Up to (excluding) 6.18.45
  • From (including) 2.6.39 - Up to (excluding) 7.1.9
  • From (including) 2.6.39 - Up to (excluding) 7.2
CVE-2026-80736 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: thunderbolt: Fix bandwidth group reservation indexing Valid bandwidth group IDs range from 1 through MAX_GROUPS, while Group ID 0 is reserved. tb_consumed_dp_bandwidth() uses the Group ID directly to index its local group_reserved[] array. The array currently has MAX_GROUPS entries, so its valid indices are 0 through MAX_GROUPS - 1. Group ID MAX_GROUPS therefore accesses one element past the end, and the final group's reserved bandwidth is not included when the array is summed. Give group_reserved[] MAX_GROUPS + 1 entries so direct Group ID indexing covers the reserved ID 0 and valid IDs 1 through MAX_GROUPS.

Affected versions
  • From (including) 6.9 - Up to (excluding) 6.12.104
  • From (including) 6.9 - Up to (excluding) 6.18.45
Show 2 more
  • From (including) 6.9 - Up to (excluding) 7.1.9
  • From (including) 6.9 - Up to (excluding) 7.2
CVE-2026-80735 HIGH (7.3) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ovpn: ensure socket is owned by ovpn before deref sk_user_data Some subsystems, like BPF SOCKMAP, set sk_user_data without actually setting the encap_type. For this reason, we must make sure that the type is the one ovpn expects before dereferencing sk_user_data. Failing to do so may lead to out-of-bounds reads.

Affected versions
  • From (including) 6.16 - Up to (excluding) 6.18.45
  • From (including) 6.16 - Up to (excluding) 7.1.9
Show 1 more
  • From (including) 6.16 - Up to (excluding) 7.2
CVE-2026-80734 HIGH (8.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: btrfs: initialize inode mapping flags for cached inodes [BUG] When running generic/795 with 8K block size, 4K page size, the test always fails, triggering some ASSERT()s related to folio size: 795 (241074): drop_caches: 3 assertion failed: IS_ALIGNED(start, blocksize) && IS_ALIGNED(end + 1, blocksize), in extent_io.c:1404 (blocksize=8192 root=262 ino=258 start=16826368 end=16830463 mapping min order=0) ------------[ cut here ]------------ kernel BUG at extent_io.c:1404! Oops: invalid opcode: 0000 [#1] SMP CPU: 8 UID: 0 PID: 241105 Comm: fsstress Tainted: G OE 7.2.0-rc5-custom+ #442 PREEMPT(full) f4bfb352566f3949f29c233ce6f735050a03b245 Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022 RIP: 0010:assert_folio_range.cold+0x3d/0x3f [btrfs] Call Trace: <TASK> btrfs_read_folio+0x9e/0x170 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] prepare_one_folio.constprop.0+0x104/0x2a0 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] btrfs_buffered_write+0x285/0xa50 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] btrfs_do_write_iter+0x1aa/0x210 [btrfs 4cd1dd93b341b8ef766643f9512f4a86259567a3] iter_file_splice_write+0x31a/0x540 direct_splice_actor+0x53/0x170 splice_direct_to_actor+0xe9/0x240 do_splice_direct+0x76/0xb0 vfs_copy_file_range+0x1fd/0x630 __x64_sys_copy_file_range+0xf9/0x220 do_syscall_64+0xe1/0x790 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> ---[ end trace 0000000000000000 ]--- The ASSERT() itself is added by a later patch. The crash is triggered with that new debug patch, and without this fix. [CAUSE] In the above case, the start 16826368 is properly 8K aligned, but the end (16830463 + 1) is not 8K aligned. Furthermore the mapping's minimal folio order is 0, not the expected 1 for 8K block size with 4K page size. So this means some inodes do not have btrfs_set_inode_mapping_order() called on it. The missing btrfs_set_inode_mapping_order() call happens for cached inodes, through the following events: - btrfs_create_new_inode() called for inode X Which properly sets minimal folio order for the VFS inode. - btrfs_update_inode() called for inode X Which calls btrfs_delayed_update_inode() to create a delayed_node into root->delayed_nodes xarray. - Drop cache/memory pressure, evicting in-memory inode X Which evicted the inode X, but delayed_node is still in root->delayed_nodes for future reuse. - btrfs_iget() for inode X called again btrfs_iget() |- btrfs_iget_locked() | |- iget5_locked_rcu() | Which creates a new vfs_inode for btrfs, whose mapping still | has the minimal order as 0. | |- btrfs_read_locked_inode() |- btrfs_fill_inode() | |- btrfs_get_delayed_node() | Which found out the previous node, and use that delayed | node to initialize the new inode. | |- filled = true; |- if (filled) goto cache_index; Which skips the btrfs_update_inode_mapping_flags() and btrfs_set_inode_mapping_order() calls. So the inode still has minimal folio order set as 0, not the required 1. Thus later page cache read will get a folio whose size is smaller than block size, as the mapping has its minimal folio order set as 0 not 1, then trigger the ASSERT(). [FIX] Move the btrfs_update_inode_mapping_flags() and btrfs_set_inode_mapping_order() calls under cache_index label, so that the mapping flags and minimal folio order is always set no matter if we have a cached inode.

Affected versions
  • From (including) 6.14.6 - Up to (excluding) 6.15
  • From (including) 6.15 - Up to (excluding) 7.1.9
Show 1 more
  • From (including) 6.15 - Up to (excluding) 7.2
CVE-2026-80732 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ata: pata_sl82c105: fix bridge revision use-after-free pci_get_slot() returns a referenced PCI device. Commit 44c10138fd4b ("PCI: Change all drivers to use pci_device->revision") replaced a configuration-space read with direct access to the cached revision field, but left that access after pci_dev_put(). The bridge may therefore be freed before its revision is read. Read the revision before dropping the reference.

Affected versions
  • From (including) 2.6.23 - Up to (excluding) 5.10.265
  • From (including) 2.6.23 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 2.6.23 - Up to (excluding) 6.1.183
  • From (including) 2.6.23 - Up to (excluding) 6.6.152
  • From (including) 2.6.23 - Up to (excluding) 6.12.104
  • From (including) 2.6.23 - Up to (excluding) 6.18.45
  • From (including) 2.6.23 - Up to (excluding) 7.1.9
  • From (including) 2.6.23 - Up to (excluding) 7.2
CVE-2026-80731 HIGH (7.8) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net: remove CAP_SYS_RAWIO zero-padding in dev_validate_header dev_validate_header() reads dev->hard_header_len directly when zero-padding short link layer headers for CAP_SYS_RAWIO holders: if (capable(CAP_SYS_RAWIO)) { memset(ll_header + len, 0, dev->hard_header_len - len); return true; } Packet send paths call dev_validate_header() on skbs whose headroom was allocated from an earlier hard_header_len read. If the device is reconfigured so that dev->hard_header_len increases before validation, the memset writes past the reserved buffer, an out-of-bounds write. This out-of-bounds write is masked in some SOCK_RAW paths today because the same concurrent increase can first make skb_push() exceed the reserved headroom and trigger skb_under_panic(). Remove the zero-padding branch before making those hard_header_len reads consistent, so the snapshot fixes do not turn a loud panic into a silent overwrite. This path is only reached for variable length L2 protocols, where len < hard_header_len but len >= min_header_len. No remaining in-tree variable length L2 protocol implements header_ops->validate, and the CAP_SYS_RAWIO bypass that zero-pads and accepts short headers has no real value beyond allowing testing of intentionally malformed input. Drop the CAP_SYS_RAWIO branch. The remaining reads of dev->hard_header_len in dev_validate_header() are comparisons only and have no memory safety impact.

Affected versions
  • From (including) 3.2.80 - Up to (excluding) 3.2.81
  • From (including) 3.16.36 - Up to (excluding) 3.17
Show 11 more
  • From (including) 4.1.28 - Up to (excluding) 4.2
  • From (including) 4.4.8 - Up to (excluding) 4.5
  • From (including) 4.5.2 - Up to (excluding) 4.6
  • From (including) 4.6 - Up to (excluding) 5.10.265
  • From (including) 4.6 - Up to (excluding) 5.15.216
  • From (including) 4.6 - Up to (excluding) 6.1.183
  • From (including) 4.6 - Up to (excluding) 6.6.152
  • From (including) 4.6 - Up to (excluding) 6.12.104
  • From (including) 4.6 - Up to (excluding) 6.18.45
  • From (including) 4.6 - Up to (excluding) 7.1.9
  • From (including) 4.6 - Up to (excluding) 7.2
CVE-2026-80726 CRITICAL (9.3) 2026-09-03 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: WARN and clear role.invalid when creating a child shadow page Explicitly clear role.invalid when deriving a child shadow page's role from its parent to harden against bugs elsewhere in KVM, as violating KVM's invariant that invalid pages are NOT on the list of active MMU pages leads to use-after-free due to __kvm_mmu_prepare_zap_page() using list_add() instead of list_move() when processing an invalid shadow page, i.e. makes a bad situation far worse. Yell loudly if the parent is invalid, as it means KVM has missed a validity check, i.e. KVM is attempting to map memory using an invalid/obsolete root, but continue on as the child is otherwise still a valid shadow page. ================================================================== BUG: KASAN: slab-use-after-free in __kvm_mmu_get_shadow_page+0x1817/0x1860 [kvm] Write of size 8 at addr ff11000153dd1368 by task repro/853 CPU: 1 UID: 1000 PID: 853 Comm: repro Not tainted 7.2.0-rc2-3aec122bdcaf-next-vm #5 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 Call Trace: <TASK> dump_stack_lvl+0x4b/0x70 print_report+0x153/0x49c kasan_report+0xbc/0xf0 __kvm_mmu_get_shadow_page+0x1817/0x1860 [kvm] mmu_alloc_root+0x141/0x320 [kvm] kvm_mmu_load+0x612/0x20f0 [kvm] kvm_arch_vcpu_ioctl_run+0x3dd5/0x6150 [kvm] kvm_vcpu_ioctl+0x5e4/0x10d0 [kvm] __x64_sys_ioctl+0x131/0x1b0 do_syscall_64+0x67/0x5f0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> Allocated by task 853: kasan_save_stack+0x20/0x40 kasan_save_track+0x14/0x30 __kasan_slab_alloc+0x5f/0x70 kmem_cache_alloc_noprof+0xfe/0x2e0 __kvm_mmu_topup_memory_cache+0x135/0x530 [kvm] paging64_page_fault+0x318/0x1e30 [kvm] kvm_mmu_do_page_fault+0x21d/0x630 [kvm] kvm_mmu_page_fault+0x18c/0x17b0 [kvm] kvm_arch_vcpu_ioctl_run+0x1f35/0x6150 [kvm] kvm_vcpu_ioctl+0x5e4/0x10d0 [kvm] __x64_sys_ioctl+0x131/0x1b0 do_syscall_64+0x67/0x5f0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Freed by task 853: kasan_save_stack+0x20/0x40 kasan_save_track+0x14/0x30 kasan_save_free_info+0x3b/0x60 __kasan_slab_free+0x43/0x70 kmem_cache_free+0xe2/0x400 kvm_mmu_commit_zap_page.part.0+0x1e2/0x310 [kvm] kvm_mmu_free_roots+0x283/0x560 [kvm] kvm_arch_vcpu_ioctl_run+0x33c8/0x6150 [kvm] kvm_vcpu_ioctl+0x5e4/0x10d0 [kvm] __x64_sys_ioctl+0x131/0x1b0 do_syscall_64+0x67/0x5f0 entry_SYSCALL_64_after_hwframe+0x4b/0x53

Affected versions
  • From (including) 2.6.30 - Up to (excluding) 6.1.183
  • From (including) 2.6.30 - Up to (excluding) 6.6.152
Show 4 more
  • From (including) 2.6.30 - Up to (excluding) 6.12.104
  • From (including) 2.6.30 - Up to (excluding) 6.18.45
  • From (including) 2.6.30 - Up to (excluding) 7.1.9
  • From (including) 2.6.30 - Up to (excluding) 7.2
CVE-2026-80725 CRITICAL (9.8) 2026-08-29 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net: gro: properly validate BIG TCP aggregation criteria When GRO attempts to aggregate packets beyond GRO_LEGACY_MAX_SIZE (64KB), BIG TCP should only be permitted for plain IPv4 TCP and plain IPv6 TCP (with sufficient MAC header room to insert the temporary HBH jumbo header). However, commit b1a78b9b9886 ("net: add support for ipv4 big tcp") loosened the check in skb_gro_receive(), leading to several issues: 1. skb_gro_receive() checked skb_headroom(p) instead of the actual space before the MAC header (p->mac_header). Because skb_headroom(p) includes mac_len, crafted frames (e.g. injected via AF_PACKET) can pass the check with p->mac_header < 8 bytes. When ipv6_gro_complete() inserts the temporary HBH jumbo header, the memmove() starts before skb->head, causing an out-of-bounds write and wrapping skb->mac_header. 2. It allowed non-IP protocols such as software VLAN (ETH_P_8021Q / ETH_P_8021AD) to aggregate beyond 64KB because p->protocol != ETH_P_IPV6 was true. 3. It checked p->encapsulation instead of NAPI_GRO_CB(skb)->encap_mark, allowing encapsulated flows (e.g. SIT / IPv6-in-IPv4) to aggregate beyond 64KB. Fix skb_gro_receive() to strictly enforce: - NAPI_GRO_CB(skb)->proto == IPPROTO_TCP - Not encapsulated (!NAPI_GRO_CB(skb)->encap_mark && !p->encapsulation) - Protocol must be either ETH_P_IP or ETH_P_IPV6 - If ETH_P_IPV6, p->mac_header must be at least sizeof(struct hop_jumbo_hdr) Returning -E2BIG from skb_gro_receive() ensures that packets which cannot become BIG TCP are cleanly flushed at <= 64KB and delivered intact without dropping. This issue does not exist in mainline (7.0+) because the subsystem was rewritten in commit 81be30c1f5f2 ("net/ipv6: Drop HBH for BIG TCP on RX side"), making this fix relevant only for older stable branches like 6.18.y.

Affected versions
  • From (including) 5.19 - Up to (excluding) 6.1.185
  • From (including) 5.19 - Up to (excluding) 6.6.154
Show 3 more
  • From (including) 5.19 - Up to (excluding) 6.12.106
  • From (including) 5.19 - Up to (excluding) 6.18.47
  • From (including) 5.19 - Up to (excluding) 7.0
CVE-2026-80724 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ptp: vmclock: prevent read-only mappings from becoming writable vmclock_miscdev_mmap() rejects writable mappings of the shared vmclock ABI page with -EROFS, but leaves VM_MAYWRITE set. Userspace can map the page read-only and then upgrade it to writable with mprotect(), after which the guest can corrupt the host-written timekeeping data (sequence counter, UTC time, TSC offset) that the vmclock ABI defines as read-only. Clear VM_MAYWRITE on the read-only path so the mapping cannot be upgraded, as i915 does for its read-only objects and as fixed in drm/vc4 (CVE-2026-68445) and drm/panthor (CVE-2024-53071).

Affected versions
  • From (including) 6.13 - Up to (excluding) 6.18.47
  • From (including) 6.13 - Up to (excluding) 7.1.11
Show 2 more
  • From (including) 6.13 - Up to (excluding) 7.2.1
  • From (including) 6.13 - Up to (excluding) 7.3-rc1
CVE-2026-80723 HIGH (8.4) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: of: reserved_mem: prevent OOB when too many dynamic regions are defined On boot, fdt_scan_reserved_mem() saves each dynamically-placed /reserved-memory subnode into a local array of size MAX_RESERVED_REGIONS. If the device tree defines more than MAX_RESERVED_REGIONS dynamically-placed regions, fdt_scan_reserved_mem() writes past the end of the local array. Add a bounds check that logs an error and skips the excess regions, restoring the original behavior.

Affected versions
  • From (including) 6.12.13 - Up to (excluding) 6.12.103
  • From (including) 6.13 - Up to (excluding) 6.18.44
Show 2 more
  • From (including) 6.13 - Up to (excluding) 7.1.8
  • From (including) 6.13 - Up to (excluding) 7.2
CVE-2026-80722 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: validate individual TWT params before driver setup ieee80211_process_rx_twt_action() only partially validates a received S1G TWT setup frame before queueing it. An individual agreement can therefore reach ieee80211_s1g_rx_twt_setup() with twt->length too short for the full struct ieee80211_twt_params. The individual path passes twt to drv_add_twt_setup(). Both the tracepoint and the driver callback consume the complete parameters block, not merely req_type. Do not pass a short individual agreement to the driver. Broadcast agreements remain unchanged because they are rejected locally after accessing only req_type. [edit commit message to not overclaim lack of validation nor understate driver impact]

Affected versions
  • From (including) 5.15 - Up to (excluding) 5.15.216
  • From (including) 5.15 - Up to (excluding) 6.1.183
Show 5 more
  • From (including) 5.15 - Up to (excluding) 6.6.151
  • From (including) 5.15 - Up to (excluding) 6.12.103
  • From (including) 5.15 - Up to (excluding) 6.18.44
  • From (including) 5.15 - Up to (excluding) 7.1.8
  • From (including) 5.15 - Up to (excluding) 7.2
CVE-2026-80721 HIGH (8.8) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ISO: ensure no dangling hcon references in iso_conn After iso_conn_del(), ISO sockets should not dereference the hcon any more. Currently, clearing iso_conn::hcon relies on iso_conn_del() releasing the last reference to the iso_conn. Simplify this by explicitly clearing conn->hcon in iso_conn_del(), to avoid more complex reasoning on races about who holds the last reference.

Affected versions
  • From (including) 6.11.11 - Up to (excluding) 6.12
  • From (including) 6.12.2 - Up to (excluding) 6.13
Show 3 more
  • From (including) 6.13 - Up to (excluding) 6.18.44
  • From (including) 6.13 - Up to (excluding) 7.1.8
  • From (including) 6.13 - Up to (excluding) 7.2
CVE-2026-80720 HIGH (7.5) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: iomap: add a separate bio_set for iomap_split_ioend iomap_split_ioend can split bios that already come from iomap_ioend_bioset and thus deadlock when the bioset is exhausted. Add a separate bio_set to avoid this deadlock. Christian Brauner <brauner@kernel.org> says: Mark iomap_ioend_split_bioset static as it is only used in ioend.c, fixing the sparse warning reported by the kernel test robot.

Affected versions
  • From (including) 6.15 - Up to (excluding) 6.18.44
  • From (including) 6.15 - Up to (excluding) 7.1.8
Show 1 more
  • From (including) 6.15 - Up to (excluding) 7.2
CVE-2026-80718 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk() In pcpu_create_chunk(), nr_pages is the total contiguous backing allocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated() uses it to set chunk->populated, whose size is pcpu_unit_pages, bitmap. Since bit N in chunk->populated means page offset N inside every unit is backed. When nr_units > 1, the function writes beyond chunk->populated. Fix it by using chunk->nr_pages. It also fixes the global pcpu_nr_empty_pop_pages accounting, since pcpu_balance_free() only iterates up to chunk->nr_pages. Commit a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap properly") introduced the bitmap overflow issue. Later, commit b539b87fed37f ("percpu: implmeent pcpu_nr_empty_pop_pages and chunk->nr_populated") added pcpu_nr_empty_pop_pages and caused the accounting issue.

Affected versions
  • From (including) 3.18 - Up to (excluding) 5.10.265
  • From (including) 3.18 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 3.18 - Up to (excluding) 6.1.183
  • From (including) 3.18 - Up to (excluding) 6.6.151
  • From (including) 3.18 - Up to (excluding) 6.12.103
  • From (including) 3.18 - Up to (excluding) 6.18.44
  • From (including) 3.18 - Up to (excluding) 7.1.8
  • From (including) 3.18 - Up to (excluding) 7.2
CVE-2026-80717 HIGH (7.5) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: sctp: validate Adaptation Indication parameter length The Adaptation Layer Indication parameter contains a fixed 32-bit Adaptation Code Point after its parameter header. However, sctp_verify_param() accepts a header-only parameter because the generic parameter walker only requires the header to be present. sctp_process_param() then reads adaptation_ind beyond the declared parameter. When the malformed parameter is last in an INIT, the read starts at the receive skb tail, and the value is copied into the state cookie returned in the INIT ACK. This may disclose four receive-buffer tail bytes. Require the declared parameter length to match the fixed structure size and abort the association through the existing invalid parameter length path otherwise.

Affected versions
  • From (including) 2.6.12 - Up to (excluding) 5.10.265
  • From (including) 2.6.12 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 2.6.12 - Up to (excluding) 6.1.183
  • From (including) 2.6.12 - Up to (excluding) 6.6.151
  • From (including) 2.6.12 - Up to (excluding) 6.12.103
  • From (including) 2.6.12 - Up to (excluding) 6.18.44
  • From (including) 2.6.12 - Up to (excluding) 7.1.8
  • From (including) 2.6.12 - Up to (excluding) 7.2
CVE-2026-80716 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ALSA: pcm: wake linked drain waiters on unlink snd_pcm_drain() on a linked stream parks an on-stack wait entry on the drained peer's runtime->sleep, and after schedule_timeout() removes it only if that peer is still found in the caller's group. If group membership changes during the wait and the sleep ends by signal or timeout (so autoremove_wake_function() does not run), finish_wait() is skipped and snd_pcm_drain() returns with the entry still queued on that stream's sleep list; a later wake_up() then walks a freed stack frame. This is reachable by unlinking either the drained or the draining stream. Unlike the close path (snd_pcm_drop() -> snd_pcm_post_stop()), snd_pcm_unlink() never wakes the sleep queues. Wake every group member under the group lock before the membership change, so a linked drainer is released and drops its entry while the streams are still grouped. The window was opened when snd_pcm_link_rwsem stopped being held across the wait and the removal became conditional on group membership (see Fixes). The later switch to finish_wait() kept that conditional removal, so the signal/timeout case remained.

Affected versions
  • From (including) 5.1 - Up to (excluding) 5.10.265
  • From (including) 5.1 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 5.1 - Up to (excluding) 6.1.183
  • From (including) 5.1 - Up to (excluding) 6.6.151
  • From (including) 5.1 - Up to (excluding) 6.12.103
  • From (including) 5.1 - Up to (excluding) 6.18.44
  • From (including) 5.1 - Up to (excluding) 7.1.8
  • From (including) 5.1 - Up to (excluding) 7.2
CVE-2026-80714 CRITICAL (9.8) 2026-08-28 Current versionnot affected

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.

Affected versions
  • From (including) 2.6.36 - Up to (excluding) 5.10.265
  • From (including) 2.6.36 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 2.6.36 - Up to (excluding) 6.1.183
  • From (including) 2.6.36 - Up to (excluding) 6.6.151
  • From (including) 2.6.36 - Up to (excluding) 6.12.103
  • From (including) 2.6.36 - Up to (excluding) 6.18.44
  • From (including) 2.6.36 - Up to (excluding) 7.1.8
  • From (including) 2.6.36 - Up to (excluding) 7.2
CVE-2026-80713 HIGH (8.4) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: io_uring: preserve task restrictions across exec Per-task restrictions apply to all rings created by a task. Once installed, they should not be dropped across exec. For a task that has used io_uring, the exec cancellation path calls __io_uring_free(). This frees both the task context and the per-task restriction, so a ring created after exec is unrestricted. Split task context cleanup into io_uring_free_tctx(), and use it from the exec cancellation path. Keep __io_uring_free() for final task cleanup, where both the context and restriction are released.

Affected versions
  • From (including) 7.0 - Up to (excluding) 7.1.8
  • From (including) 7.0 - Up to (excluding) 7.2
CVE-2026-80712 HIGH (8.4) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: spi: spi-qpic-snand: write the feature value before executing SET_FEATURE qcom_spi_send_cmdaddr() programs NAND_FLASH_CMD/NAND_EXEC_CMD and submits the descriptors, which makes the controller execute the command immediately. For SPINAND_SET_FEATURE the value to be written is only placed into NAND_FLASH_FEATURES afterwards, by qcom_spi_io_op(), in a second submission - so the chip is programmed with whatever that register happened to hold from a previous operation, and the intended value is only applied by the *next* SET_FEATURE. Measured on a TP-Link Archer AX55 v1 (IPQ5018, ESMT F50L1G41LB): writing 0x40 to the configuration register (0xb0) leaves the chip at 0x00, and the subsequent write of 0x00 leaves it at 0x40 - every write lands one operation late. This stayed unnoticed until v6.18 added SPI-NAND OTP support together with OTP entries for ESMT chips. spinand_otp_rw() enables OTP mode, reads, and disables it again, and mtd_otp_nvmem_add() does this during MTD registration. With the off-by-one, the "disable" write actually applies the previously requested value, so CFG_OTP_ENABLE ends up set: the chip stays in OTP mode, every subsequent array read returns the OTP area instead of the array (UBI reports an empty device) and all writes fail with -EIO because the OTP area is write protected. On this board that makes the whole flash unusable and the device unbootable. Write the feature value into NAND_FLASH_FEATURES as part of the same transaction, before NAND_EXEC_CMD. While at it, copy only the bytes the operation actually carries - the previous code dereferenced a 4-byte pointer on a one-byte buffer (spinand->scratchbuf). With this patch the flash contents read back bit-identical to a known-good dump of the same board taken under the vendor firmware (md5-verified across partitions), and writes work.

Affected versions
  • From (including) 6.15 - Up to (excluding) 6.18.44
  • From (including) 6.15 - Up to (excluding) 7.1.8
Show 1 more
  • From (including) 6.15 - Up to (excluding) 7.2
CVE-2026-80710 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: s390/dasd: Fix undersized format-check buffer fmt_buffer_size in dasd_eckd_check_device_format() is declared as int, even though one of the multiplicands, sizeof(struct eckd_count), is a size_t. The expression trkcount * rpt_max * sizeof(struct eckd_count) is therefore correctly evaluated at 64-bit width, but the result is silently truncated when it is stored back into the 32-bit fmt_buffer_size variable. For a sufficiently large track range (start_unit/stop_unit are caller-controlled) this truncation yields a buffer size far smaller than the number of tracks actually requested. kzalloc() then succeeds with an undersized allocation, while the subsequent channel program build still operates on the untruncated track count and writes past the end of that buffer. Compute the buffer size with check_mul_overflow() and keep it in a size_t, so that a value that no longer fits results in -EINVAL instead of a silently truncated allocation size.

Affected versions
  • From (including) 4.7 - Up to (excluding) 6.6.151
  • From (including) 4.7 - Up to (excluding) 6.12.103
Show 3 more
  • From (including) 4.7 - Up to (excluding) 6.18.44
  • From (including) 4.7 - Up to (excluding) 7.1.8
  • From (including) 4.7 - Up to (excluding) 7.2
CVE-2026-80709 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: s390/zcrypt: Fix wrong domain value verification with EP11 CPRBs There is a wrong upper limit check for the domain value when an EP11 CPRB is processed for sending to a crypto card. This check is only active on custom device nodes but may lead to access heap memory behind perms->adm when an administrative CPRB is sent. Add correct limit (AP_DOMAINS = 256) checking to fix this.

Affected versions
  • From (including) 5.18 - Up to (excluding) 6.1.183
  • From (including) 5.18 - Up to (excluding) 6.6.151
Show 4 more
  • From (including) 5.18 - Up to (excluding) 6.12.103
  • From (including) 5.18 - Up to (excluding) 6.18.44
  • From (including) 5.18 - Up to (excluding) 7.1.8
  • From (including) 5.18 - Up to (excluding) 7.2
CVE-2026-80707 HIGH (7.5) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: can: j1939: transport: j1939_session_fresh_new(): initialize receive buffer Zero the allocated buffer in j1939_session_fresh_new() to ensure it contains no residual data. While there is a potential performance impact if users allocate maximum sized ETP buffers, most real-world use cases are not noticeably affected since the maximum known buffer size is typically around 65K. [mkl: add Message-ID]

Affected versions
  • From (including) 5.4 - Up to (excluding) 5.10.265
  • From (including) 5.4 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 5.4 - Up to (excluding) 6.1.183
  • From (including) 5.4 - Up to (excluding) 6.6.151
  • From (including) 5.4 - Up to (excluding) 6.12.103
  • From (including) 5.4 - Up to (excluding) 6.18.44
  • From (including) 5.4 - Up to (excluding) 7.1.8
  • From (including) 5.4 - Up to (excluding) 7.2
CVE-2026-80706 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: can: softing: fw_parse(): validate firmware record spans fw_parse() reads a fixed record header, a firmware-provided payload, and a trailing checksum without knowing the end of the firmware blob. A truncated record can therefore make those reads exceed the blob. The same record also supplies addresses and lengths for writes into DPRAM. The generic loader uses wrap-prone mixed signed arithmetic for its bounds check, while the application loader does not bound the staging copy at all. Pass the firmware end to the parser and validate the full source record. Use a signed wide offset for generic DPRAM records and validate the application staging span against the mapped DPRAM before copying.

Affected versions
  • From (including) 2.6.38 - Up to (excluding) 5.10.265
  • From (including) 2.6.38 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 2.6.38 - Up to (excluding) 6.1.183
  • From (including) 2.6.38 - Up to (excluding) 6.6.151
  • From (including) 2.6.38 - Up to (excluding) 6.12.103
  • From (including) 2.6.38 - Up to (excluding) 6.18.44
  • From (including) 2.6.38 - Up to (excluding) 7.1.8
  • From (including) 2.6.38 - Up to (excluding) 7.2
CVE-2026-80702 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size Two sites in vmwgfx_resource.c assign boolean literals to res->guest_memory_size, which is an unsigned long allocation-size field; the intended target is the adjacent res->guest_memory_dirty bitfield. After the assignments the field holds 0 or 1 instead of the resource's MOB allocation size: - vmw_resource_release() writes 0 (false), and - vmw_resource_unbind_list() writes 1 (true). Subsequent revalidation paths read guest_memory_size when computing the dirty page range (vmw_bo_dirty_transfer_to_res()) and the buffer allocation size (vmw_resource_buf_alloc()), producing zero-length walks or wrap-around ranges that read or write past the MOB bitmap. The dirty-tracking intent of the original code (mark the resource as dirtied since the last sync) is also lost, since guest_memory_dirty is never updated. Rename both assignments to guest_memory_dirty.

Affected versions
  • From (including) 6.4 - Up to (excluding) 6.6.151
  • From (including) 6.4 - Up to (excluding) 6.12.103
Show 3 more
  • From (including) 6.4 - Up to (excluding) 6.18.44
  • From (including) 6.4 - Up to (excluding) 7.1.8
  • From (including) 6.4 - Up to (excluding) 7.2
CVE-2026-80700 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: validate external BO copy bounds for both stride paths vmw_external_bo_copy() trusts caller-supplied offsets, strides, and heights and operates on imported dma-buf vmaps: - The equal-stride memcpy() bound was clamped after subtracting the offsets from dst_size and src_size; an offset larger than the BO size wraps the unsigned subtraction to a huge value and the resulting memcpy() runs off the end of the vmap. dst_stride * height is also a u32 multiplication that can overflow. - The non-equal-stride row-by-row path had no bound at all. The loop touches bytes through offset + (height - 1) * stride + width_in_bytes, with only a WARN_ON(dst_stride < width_in_bytes), and could likewise step past the end of either mapping. The offsets and strides are derived from STDU/SOU plane state, so a configured CRTC submitting a crafted atomic commit on an imported framebuffer can reach this path. Validate the exact row-copy endpoint against each BO's size up front using check_mul_overflow() and check_add_overflow(). Use the bulk memcpy() path only when width_in_bytes covers the whole stride; otherwise copy one row at a time so partial-row updates near the bottom of a framebuffer remain valid. Also reject zero strides and stride < width_in_bytes, both of which the row-by-row path cannot represent safely.

Affected versions
  • From (including) 6.6.49 - Up to (excluding) 6.6.151
  • From (including) 6.10.8 - Up to (excluding) 6.11
Show 4 more
  • From (including) 6.11 - Up to (excluding) 6.12.103
  • From (including) 6.11 - Up to (excluding) 6.18.44
  • From (including) 6.11 - Up to (excluding) 7.1.8
  • From (including) 6.11 - Up to (excluding) 7.2
CVE-2026-80696 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: hwmon: (ltc4282) Fix reading the minimum alarm voltage Coverity reports an out-of-bounds access when reading the minimum alarm voltage for the VGPIO channel. Add the missing return statement to fix the problem.

Affected versions
  • From (including) 6.9 - Up to (excluding) 6.12.103
  • From (including) 6.9 - Up to (excluding) 6.18.44
Show 2 more
  • From (including) 6.9 - Up to (excluding) 7.1.8
  • From (including) 6.9 - Up to (excluding) 7.2
CVE-2026-80694 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller mtk_handle_irq_rx expects a struct mtk_eth * (matching the request_irq cookie), but mtk_poll_controller incorrectly passed the net_device *. Calling ndo_poll_controller with CONFIG_NET_POLL_CONTROLLER enabled would then crash.

Affected versions
  • From (including) 4.8 - Up to (excluding) 6.12.103
  • From (including) 4.8 - Up to (excluding) 6.18.44
Show 2 more
  • From (including) 4.8 - Up to (excluding) 7.1.8
  • From (including) 4.8 - Up to (excluding) 7.2
CVE-2026-80693 CRITICAL (9.3) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: idpf: bound interrupt-vector register fill to the allocated array idpf_get_reg_intr_vecs() fills the caller-allocated reg_vals[] array from the VIRTCHNL2_OP_ALLOC_VECTORS reply in adapter->req_vec_chunks, bounding its inner loop only by the per-chunk num_vectors. The array is sized separately: idpf_intr_reg_init() allocates kzalloc_objs(struct idpf_vec_regs, total_vecs) from caps.num_allocated_vectors and only checks the returned count after the fill. The sum of per-chunk num_vectors is never reconciled against total_vecs, so a reply with a small num_allocated_vectors but chunks summing higher writes past the end of reg_vals[]. Impact: a control plane (a PF or hypervisor device model) that returns a VIRTCHNL2_OP_ALLOC_VECTORS reply whose per-chunk num_vectors sum exceeds num_allocated_vectors writes struct idpf_vec_regs entries past the end of the reg_vals kmalloc allocation (KASAN slab-out-of-bounds write). Bound the fill loop to the array capacity passed in by the callers, mirroring the sibling idpf_vport_get_q_reg(). The existing num_regs < num_vecs check then rejects an undersized reply without the out-of-bounds write happening first.

Affected versions
  • From (including) 6.7 - Up to (excluding) 7.1.8
  • From (including) 6.7 - Up to (excluding) 7.2
CVE-2026-80692 HIGH (8.8) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_sync: hold conn in hci_connect_acl/le_sync() callbacks There is theoretical UAF if the conn is freed while the hci_sync task is running. Hold refcount to avoid that.

Affected versions
  • From (including) 6.6.51 - Up to (excluding) 6.7
  • From (including) 6.8.9 - Up to (excluding) 6.9
Show 2 more
  • From (including) 6.9 - Up to (excluding) 7.1.8
  • From (including) 6.9 - Up to (excluding) 7.2
CVE-2026-80691 HIGH (7.5) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: scsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE In the iblock_execute_pr_out() function, PRO_PREEMPT, PRO_PREEMPT_AND_ABORT, and PRO_RELEASE all perform callback capability checks through ops->pr_clear. The error check allows unimplemented hooks to pass through the gate, resulting dereferencing a NULL function pointer. Check whether the hooks that need to be called are supported.

Affected versions
  • From (including) 6.5 - Up to (excluding) 6.6.151
  • From (including) 6.5 - Up to (excluding) 6.12.103
Show 3 more
  • From (including) 6.5 - Up to (excluding) 6.18.44
  • From (including) 6.5 - Up to (excluding) 7.1.8
  • From (including) 6.5 - Up to (excluding) 7.2
CVE-2026-80685 HIGH (7.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mm/util: don't read __page_2 for order-1 folios in snapshot_page() snapshot_page() currently reads __page_2 after checking nr_pages > 1, but it should only do so when nr_pages > 2. If an order-1 folio is allocated at the end of a vmemmap section, __page_2 will not exist and reading it will cause a fault. During DLPAR memory remove on a 22 TB ppc64le LPAR, snapshot_page() oopsed on the page isolation path while reading an order-1 folio's __page_2 from an adjacent absent section (unmapped vmemmap). Fix this to avoid reading memmap that doesn't exist (e.g., a vmemmap hole).

Affected versions
  • From (including) 6.15 - Up to (excluding) 6.18.44
  • From (including) 6.15 - Up to (excluding) 7.1.8
Show 1 more
  • From (including) 6.15 - Up to (excluding) 7.2
CVE-2026-80684 CRITICAL (9.3) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: KVM: s390: pci: Fix NULL dereference on AIBV allocation failure The airq_iv_create() can return NULL on failure, but the return value was never checked. If it fails, zdev->aibv will be NULL and fail when dereferenced in kvm_zpci_set_airq(). Add a NULL check and free the previously allocated AISB bit and zdev->aisb on failure.

Affected versions
  • From (including) 6.0 - Up to (excluding) 6.1.183
  • From (including) 6.0 - Up to (excluding) 6.6.151
Show 4 more
  • From (including) 6.0 - Up to (excluding) 6.12.103
  • From (including) 6.0 - Up to (excluding) 6.18.44
  • From (including) 6.0 - Up to (excluding) 7.1.8
  • From (including) 6.0 - Up to (excluding) 7.2
CVE-2026-80683 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: SCO: give the socket its own sco_conn reference sco_conn_del() drops a reference it does not own. It takes one transient reference via sco_conn_hold_unless_zero() and releases it with the sco_conn_put() that follows sco_sock_hold(); the additional put in the !sk branch releases a second one: conn = sco_conn_hold_unless_zero(conn); ... sk = sco_sock_hold(conn); sco_conn_unlock(conn); sco_conn_put(conn); if (!sk) { sco_conn_put(conn); return; } When close() races the controller's Disconnection Complete, sco_chan_del() clears conn->sk and drops the socket's reference while sco_conn_del() is running. sco_conn_del() then sees sk == NULL, its own put drops the count to zero and frees the conn, and the second put writes to the freed kref: BUG: KASAN: slab-use-after-free in sco_conn_put.part.0+0x1a/0x190 Write of size 4 at addr ffff8881099dec74 by task kworker/u17:3/413 Workqueue: hci1 hci_rx_work Call Trace: sco_conn_put.part.0+0x1a/0x190 hci_disconn_complete_evt+0x1ee/0x3e0 hci_event_packet+0x54a/0x650 hci_rx_work+0x321/0x3d0 Allocated by task 413: sco_conn_add+0x72/0x1a0 sco_connect_cfm+0x88/0x670 Freed by task 413: sco_conn_del.isra.0+0x3f/0xf0 hci_disconn_complete_evt+0x1ee/0x3e0 refcount_t: underflow; use-after-free. The root cause is that the socket stores the connection without holding a reference of its own. __sco_chan_add() does: sco_pi(sk)->conn = conn; so the socket borrows whatever reference its caller happened to hold, and the callers paper over that with ad-hoc holds and puts. Give the socket a counted reference instead: __sco_chan_add() takes one and it is released together with the channel (sco_chan_del()) and in sco_sock_destruct(). With the socket holding its own reference, sco_conn_del() no longer needs the extra put and the redundant hold in sco_conn_ready() goes away. Making the socket own its reference means the connection is now actually freed on the error paths of sco_connect() where it used to leak, which in turn runs sco_conn_free() and its hci_conn_drop(conn->hcon). To keep the hci_conn accounting balanced, make that ownership explicit as well: sco_conn_add() consumes one hci_conn reference and the sco_conn owns it for its lifetime. sco_connect() hands over the reference returned by hci_connect_sco() and no longer drops it on the error paths; sco_connect_cfm(), which is not given a reference, takes one with hci_conn_hold() before handing it to sco_conn_add() (and drops it again if the allocation fails); and the explicit hci_conn_hold() in sco_conn_ready() is removed. Every reference then has a single, clear owner.

Affected versions
  • From (including) 6.13 - Up to (excluding) 6.18.44
  • From (including) 6.13 - Up to (excluding) 7.1.8
Show 1 more
  • From (including) 6.13 - Up to (excluding) 7.2
CVE-2026-80682 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: riscv/mm: use physical alignment for vmemmap_start_pfn RISC-V computes vmemmap_start_pfn by rounding phys_ram_base down to VMEMMAP_ADDR_ALIGN. That alignment must therefore be expressed in the physical-address domain. Commit 476849b0fba4 ("riscv/mm: align vmemmap to maximal folio size") attempted to account for the maximal folio alignment by feeding MAX_FOLIO_VMEMMAP_ALIGN directly into VMEMMAP_ADDR_ALIGN. However, MAX_FOLIO_VMEMMAP_ALIGN is measured in bytes of struct page storage, whereas VMEMMAP_ADDR_ALIGN is used to align a physical address. The mask-based compound_info encoding requires pfn_to_page(0) to be naturally aligned to MAX_FOLIO_VMEMMAP_ALIGN. Commit 9f94db4c7eaa ("mm/sparse: check memmap alignment for compound_info_has_mask()") added a check for that requirement and exposed the unit mismatch on systems such as QEMU virt, where the DRAM base is not aligned to MAX_FOLIO_NR_PAGES * PAGE_SIZE. Here is the log: [ 0.000000][ C0] ------------[ cut here ]------------ [ 0.000000][ C0] WARNING: mm/sparse.c:365 at sparse_init+0x58a/0x6fe, CPU#0: swapper/0 [ 0.000000][ C0] Modules linked in: [ 0.000000][ C0] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 7.2.0-rc3-g1d8304bdd65f #2 PREEMPT [ 0.000000][ C0] Hardware name: riscv-virtio,qemu (DT) [ 0.000000][ C0] epc : sparse_init+0x58a/0x6fe [ 0.000000][ C0] ra : sparse_init+0x58a/0x6fe [ 0.000000][ C0] epc : ffffffff86851c88 ra : ffffffff86851c88 sp : ffffffff88807a30 [ 0.000000][ C0] gp : ffffffff8a3bf240 tp : ffffffff88842080 t0 : ff600000ffab6000 [ 0.000000][ C0] t1 : 000000017fab6000 t2 : 65203a6573726363 s0 : ffffffff88807bc0 [ 0.000000][ C0] s1 : 000000000e000000 a0 : 0000000000000007 a1 : 0000000000000000 [ 0.000000][ C0] a2 : 0000000000000002 a3 : ffffffff86851c88 a4 : 0000000000000000 [ 0.000000][ C0] a5 : ffffffff88843080 a6 : 0000000000000003 a7 : 0000000000000000 [ 0.000000][ C0] s2 : ff60000000000000 s3 : 0040000000000000 s4 : 0004000000000000 [ 0.000000][ C0] s5 : ffffffff8a4d92e0 s6 : ff600000ffab55e0 s7 : ffffffff88384d00 [ 0.000000][ C0] s8 : 0000000000000003 s9 : ffffffff88384cc1 s10: ffffffff88384cc0 [ 0.000000][ C0] s11: ffffffff8a4daae0 t3 : ffffffff915e8b20 t4 : ffffffff915e8b20 [ 0.000000][ C0] t5 : ffffffff915e8b20 t6 : ffffffff915e8bc8 ssp : 0000000000000000 [ 0.000000][ C0] status: 0000000200000100 badaddr: ffffffff86851c88 cause: 0000000000000003 [ 0.000000][ C0] [<ffffffff86851c88>] sparse_init+0x58a/0x6fe [ 0.000000][ C0] [<ffffffff8683d396>] mm_core_init_early+0x116/0x1e30 [ 0.000000][ C0] [<ffffffff86801edc>] start_kernel+0xd2/0x848 Convert MAX_FOLIO_VMEMMAP_ALIGN to the equivalent physical alignment before using it in VMEMMAP_ADDR_ALIGN. This keeps the existing round_down() logic while making the resulting vmemmap base satisfy the mask-alignment requirement.

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.8
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80681 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: vxlan: re-fetch eth header after route_shortcircuit() Before route_shortcircuit(), the eth header pointer is cached from eth_hdr(skb). Inside route_shortcircuit(), pskb_may_pull() can be called, which may reallocate skb->head. In this case, returning to vxlan_xmit() leaves the cached eth pointer pointing to freed memory, leading to a use-after-free when dereferencing eth->h_dest. Fix this by updating eth = eth_hdr(skb) after calling route_shortcircuit().

Affected versions
  • From (including) 3.10 - Up to (excluding) 5.10.265
  • From (including) 3.10 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 3.10 - Up to (excluding) 6.1.183
  • From (including) 3.10 - Up to (excluding) 6.6.151
  • From (including) 3.10 - Up to (excluding) 6.12.103
  • From (including) 3.10 - Up to (excluding) 6.18.44
  • From (including) 3.10 - Up to (excluding) 7.1.8
  • From (including) 3.10 - Up to (excluding) 7.2
CVE-2026-80680 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: i2c: amd-mp2: Unregister callback on adapter add failure amd_mp2_register_cb() stores the platform I2C context in the MP2 PCI driver's callback table before the adapter is registered. If i2c_add_adapter() fails, probe returns and devres frees the context, but the PCI driver can still dereference the stale pointer from its IRQ and system-sleep callbacks. Unregister the callback before returning the adapter registration error.

Affected versions
  • From (including) 5.2 - Up to (excluding) 5.10.265
  • From (including) 5.2 - Up to (excluding) 5.15.216
Show 6 more
  • From (including) 5.2 - Up to (excluding) 6.1.183
  • From (including) 5.2 - Up to (excluding) 6.6.151
  • From (including) 5.2 - Up to (excluding) 6.12.103
  • From (including) 5.2 - Up to (excluding) 6.18.44
  • From (including) 5.2 - Up to (excluding) 7.1.8
  • From (including) 5.2 - Up to (excluding) 7.2
CVE-2026-80678 HIGH (8.4) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: i2c: imx: Fix slave registration race and error handling In i2c_imx_reg_slave(), the slave pointer was assigned before pm_runtime_resume_and_get(). If pm_runtime_resume_and_get() failed, the error path returned without clearing i2c_imx->slave, leaving it non-NULL and causing all subsequent registration attempts to fail with -EBUSY. Additionally, because this driver uses a shared IRQ, the interrupt handler i2c_imx_isr() can execute concurrently and, after acquiring slave_lock, dereference i2c_imx->slave. The previous fix attempt added a lockless i2c_imx->slave = NULL on the error path, but that could race with the ISR under the lock and still cause a NULL pointer dereference. Fix both issues by deferring the assignment of i2c_imx->slave and i2c_imx->last_slave_event to after a successful resume, and by performing the assignment inside the slave_lock critical section. This guarantees that the slave pointer is never left stale on the error path and is always valid when observed by the interrupt handler.

Affected versions
  • From (including) 5.11 - Up to (excluding) 5.15.217
  • From (including) 5.11 - Up to (excluding) 6.1.183
Show 5 more
  • From (including) 5.11 - Up to (excluding) 6.6.151
  • From (including) 5.11 - Up to (excluding) 6.12.103
  • From (including) 5.11 - Up to (excluding) 6.18.44
  • From (including) 5.11 - Up to (excluding) 7.1.8
  • From (including) 5.11 - Up to (excluding) 7.2
CVE-2026-80677 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: driver core: use READ_ONCE() for dev->driver in dev_has_sync_state() dev_has_sync_state() reads dev->driver twice without holding device_lock() -- once for the NULL check and once to dereference ->sync_state. Some callers only hold device_links_write_lock, which doesn't prevent a concurrent unbind from clearing dev->driver via device_unbind_cleanup(). Fix it by reading dev->driver exactly once with READ_ONCE(), pairing with the WRITE_ONCE() in device_set_driver().

Affected versions
  • From (including) 5.5.13 - Up to (excluding) 5.6
  • From (including) 5.6 - Up to (excluding) 5.10.261
Show 7 more
  • From (including) 5.6 - Up to (excluding) 5.15.212
  • From (including) 5.6 - Up to (excluding) 6.1.178
  • From (including) 5.6 - Up to (excluding) 6.6.145
  • From (including) 5.6 - Up to (excluding) 6.12.97
  • From (including) 5.6 - Up to (excluding) 6.18.40
  • From (including) 5.6 - Up to (excluding) 7.1.5
  • From (including) 5.6 - Up to (excluding) 7.2
CVE-2026-80675 HIGH (7.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: libbpf: Reject non-exclusive metadata maps in the signed loader The loader verifies map->sha against the metadata hash in its instructions. map->sha is calculated when BPF_OBJ_GET_INFO_BY_FD is called on the frozen map. While the map is frozen, the /signed loader/ must also ensure the map is exclusive, as, without exclusivity (which a hostile host could just omit when loading the loader), another BPF program with map access can mutate the contents afterwards, so the check passes on stale data. With the extra check as part of the signed loader, it now refuses to move on with map->sha validation if the host set it up wrongly.

Affected versions
  • From (including) 6.18 - Up to (excluding) 6.18.40
  • From (including) 6.18 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.18 - Up to (excluding) 7.2
CVE-2026-80674 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ntfs: validate resident attribute lists and harden the validator A base inode's $ATTRIBUTE_LIST is sanity-checked by load_attribute_list() only on the non-resident path; ntfs_read_locked_inode() copies a *resident* attribute list into ni->attr_list with a plain memcpy() and no validation at all. Every subsequent walk of ni->attr_list -- ntfs_external_attr_find(), ntfs_inode_attach_all_extents() and ntfs_attrlist_need() -- then trusts the entries are well-formed and reads attr_list_entry fixed-header fields (lowest_vcn at offset 8, mft_reference at offset 16, and the name) with bounds that assume validation already happened. A crafted resident attribute list therefore reaches those walks unvalidated and can drive out-of-bounds reads of the attribute-list buffer. load_attribute_list() itself reads ale->name_offset (offset 7), ale->mft_reference (offset 16) and the name length under only an "al < al_start + size" bound, so its own validation loop can over-read the fixed header of a truncated trailing entry by a few bytes. Factor the per-entry validation into ntfs_attr_list_entry_is_valid(), which requires each entry's fixed header (offsetof(struct attr_list_entry, name)) to be in range before any field is dereferenced, that ale->length is a multiple of 8 covering the fixed header plus the name, and that the entry is in use and carries a live MFT reference. ntfs_attr_list_is_valid() walks the buffer with it and checks the entries tile it exactly. Use the list validator in load_attribute_list() (replacing the open-coded loop, closing its own over-read) and on the resident path in ntfs_read_locked_inode() (which previously skipped validation entirely); patches 2/3 reuse the per-entry helper at the other two attribute-list walks.

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80673 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ntfs: bound the look-ahead attribute-list entry in ntfs_external_attr_find() When resolving an attribute lookup with a non-zero @lowest_vcn, ntfs_external_attr_find() peeks at the next $ATTRIBUTE_LIST entry to decide whether to keep searching, but bounds that not-yet-validated entry only with "(u8 *)next_al_entry + 6 < al_end" (which proves just bytes 0..6 are in range) and "(u8 *)next_al_entry + length <= al_end" with an attacker-controlled, non-8-aligned length. It then reads next_al_entry->lowest_vcn (an __le64 at offset 8) and the name at next_al_entry->name_offset, both of which can lie past al_end -- the exact end of the kvmalloc'd attribute-list buffer (allocated at the on-disk attr_list_size, no rounding). A crafted on-disk $ATTRIBUTE_LIST whose last entry sits a few bytes before al_end therefore yields a slab out-of-bounds read when the inode is read. Validate the look-ahead entry with ntfs_attr_list_entry_is_valid() (added in patch 1/3) before dereferencing lowest_vcn and the name, so the same fixed-header, length and name bounds the main attribute-list walk uses now guard this read too.

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80672 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ntfs: fix u16 truncation of restart-area length check ntfs_check_restart_area() validates that the $LogFile restart area and its trailing log client record array fit within the system page size: u16 ra_ofs, ra_len, ca_ofs; ... ra_len = ca_ofs + le16_to_cpu(ra->log_clients) * sizeof(struct log_client_record); if (ra_ofs + ra_len > le32_to_cpu(rp->system_page_size) || ...) return false; ra_len is u16, but the right-hand side is computed in size_t (sizeof(struct log_client_record) == 160). Both ca_ofs and log_clients come straight from the on-disk restart area. With an on-disk log_clients of 410 the product 410 * 160 = 65600; adding ca_ofs and storing into the u16 ra_len truncates modulo 65536 (e.g. ca_ofs 64 gives ra_len 128), so the "fits in the page" check passes even though the client array described by log_clients extends far beyond the page. ntfs_check_log_client_array() then walks the array bounded only by the on-disk log_clients count: cr = ca + idx; if (cr->prev_client != LOGFILE_NO_CLIENT) ... For log_clients 410 it dereferences records up to ca + 409 * 160, ~64 KiB past the kvzalloc(system_page_size) restart-page buffer -- an out-of-bounds read of attacker-controlled extent, reachable when a crafted NTFS image is mounted (load_and_check_logfile() at mount time). This is the in-kernel analogue of CVE-2022-30789, fixed in the ntfs-3g userspace driver but never in this revived classic driver. Compute the restart-area length in a u32 so the existing bounds check rejects an over-large client array instead of being defeated by the truncation. Widen ra_ofs and ca_ofs to u32 as well: both are loaded from __le16 on-disk fields and every comparison already promotes to int/size_t, so this changes no result and keeps the declaration uniform.

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80671 CRITICAL (9.3) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: perf sched: Fix register_pid() overflow, strcpy, and BUG_ON register_pid() has several issues when processing untrusted perf.data: 1. Integer overflow: (pid + 1) * sizeof(struct task_desc *) can wrap to a small value on 32-bit systems when pid is large (e.g. 0x40000000), causing realloc to return a tiny buffer followed by out-of-bounds writes in the initialization loop. 2. Heap buffer overflow: strcpy(task->comm, comm) copies the untrusted comm string into a fixed 20-byte COMM_LEN buffer with no length check. 3. BUG_ON on allocation failure: perf.data is untrusted input, so allocation failures should be handled gracefully rather than killing the process. 4. Realloc of sched->tasks assigned directly back, leaking the old pointer on failure; nr_tasks incremented before the realloc, leaving corrupted state on failure. Cap pid at PID_MAX_LIMIT (4194304, matching the kernel's maximum on 64-bit), replace strcpy with strlcpy, guard against NULL comm, replace BUG_ON with NULL returns using safe realloc patterns, and add NULL checks in callers that dereference the result.

Affected versions
  • From (including) 2.6.32 - Up to (excluding) 6.18.40
  • From (including) 2.6.32 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 2.6.32 - Up to (excluding) 7.2
CVE-2026-80670 CRITICAL (9.1) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: perf tools: Use perf_env__get_cpu_topology() in machine__resolve() machine__resolve() accesses env->cpu[al->cpu].socket_id after checking al->cpu >= 0 and env->cpu != NULL, but without validating al->cpu against env->nr_cpus_avail. Since al->cpu comes from the untrusted perf.data sample, a crafted file with a large CPU index causes an out-of-bounds heap read. Use perf_env__get_cpu_topology() which validates both NULL and bounds. Also bounds-check al->cpu before the cast to struct perf_cpu (int16_t): without this, values like 65536 silently truncate to 0, bypassing the accessor's internal check and returning CPU 0's topology.

Affected versions
  • From (including) 4.4 - Up to (excluding) 6.18.40
  • From (including) 4.4 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 4.4 - Up to (excluding) 7.2
CVE-2026-80668 CRITICAL (9.8) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack_expect: use conntrack GC to reap expectations This patch replaces the timer API by GC worker approach for expectations, as it already happened in many other subsystems. Use the existing conntrack GC worker to iterate over the local list of expectations in the master conntrack to reap expired expectations. Check IPS_HELPER_BIT to run GC for expectations, set it on for nft_ct expectation which nevers sets it. Hold the expectation spinlock while iterating over the master conntrack expectation list to synchronize with nf_ct_remove_expectations(). This also performs runtime packet path garbage collection through the expectation insertion and lookup functions while walking over one of the chains of the global expectation hashtables. Unconfirmed conntrack entries are skipped since ct->ext can be reallocated and dying are skipped since those will be gone soon. Set on IPS_HELPER_BIT if the helper ct extension is added, then the new GC worker does not need to bump the ct refcount to check if the ct->ext helper is available. This removes the extra bump on the refcount for expectation timers, this allows to remove several nf_ct_expect_put() calls after the unlink, after this update only refcount remains at 1 while on the expectation hashes. This patch implicitly addresses a race with the existing timer API allowing an expectation to access a stale exp->master pointer which has been already released when expectation removal loses races with an expiring timer, ie. timer_del() reporting false. Add a new NF_CT_EXPECT_DEAD flag to reap this expectation via GC. This is needed by nf_conntrack_unexpect_related() which is called in error paths to invalidate newly created expectations that has been added into the hashes. These expectactions cannot be inmediately released as GC or nf_ct_remove_expectations() could race to make it. On expectation insert, the runtime GC reaps stale expectations before checking the expectation limit set by policy. Set current timestamp in nf_ct_expect_alloc(), then add the expectation policy timeout (or custom timeout specified added on top of this) to specify the expectation lifetime.

Affected versions
  • From (including) 6.1.176 - Up to (excluding) 6.2
  • From (including) 6.6.143 - Up to (excluding) 6.7
Show 5 more
  • From (including) 6.12.94 - Up to (excluding) 6.13
  • From (including) 6.18.24 - Up to (excluding) 6.19
  • From (including) 6.19.14 - Up to (excluding) 6.20
  • From (including) 7.0 - Up to (excluding) 7.1.5
  • From (including) 7.0 - Up to (excluding) 7.2
CVE-2026-80665 HIGH (7.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: nv: Inject SEA if kvm_translate_vncr() can't resolve PFN kvm_handle_vncr_abort() assumes that s1_walk_result conveys an abort when kvm_translate_vncr() returns -EFAULT. This is not always the case as it's possible to encounter 'late' failures on the output of S1 translation, e.g. a GFN outside of the memslots. Fix it by preparing an external abort before returning from kvm_translate_vncr(). Get rid of the BUG_ON() in the fault injection path while at it.

Affected versions
  • From (including) 6.16 - Up to (excluding) 6.18.40
  • From (including) 6.16 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.16 - Up to (excluding) 7.2
CVE-2026-80664 HIGH (7.3) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: netfilter: xt_nat: reject unsupported target families xt_nat SNAT and DNAT target handlers assume IP-family conntrack state is present and can dereference a NULL pointer when instantiated from an unsupported family through nft_compat. A bridge-family compat rule can therefore trigger a NULL-dereference in nf_nat_setup_info(). Reject non-IP families in xt_nat_checkentry() so unsupported targets cannot be installed. Keep NFPROTO_INET allowed for valid inet NAT compat users and leave the runtime fast path unchanged. [ The crash was fixed via 9dbba7e694ec ("netfilter: nft_compat: ebtables emulation must reject non-bridge targets"), so this patch is no longer critical. Nevertheless, NAT is only relevant for ipv4/ipv6, so this extra family check is a good idea in any case. ]

Affected versions
  • From (including) 3.7 - Up to (excluding) 5.10.261
  • From (including) 3.7 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 3.7 - Up to (excluding) 6.1.178
  • From (including) 3.7 - Up to (excluding) 6.6.145
  • From (including) 3.7 - Up to (excluding) 6.12.97
  • From (including) 3.7 - Up to (excluding) 6.18.40
  • From (including) 3.7 - Up to (excluding) 7.1.5
  • From (including) 3.7 - Up to (excluding) 7.2
CVE-2026-80663 HIGH (7.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: tools/power/x86/intel-speed-select: Harden daemon pidfile open Avoid symlink-based pidfile clobbering by opening the pidfile with O_NOFOLLOW and validating it with fstat() before locking/writing. The daemon currently uses a fixed pidfile path under /tmp. A local unprivileged user can pre-create a symlink at that path and cause a root-run daemon instance to write into an attacker-chosen file.

Affected versions
  • From (including) 5.18 - Up to (excluding) 6.1.178
  • From (including) 5.18 - Up to (excluding) 6.6.145
Show 4 more
  • From (including) 5.18 - Up to (excluding) 6.12.97
  • From (including) 5.18 - Up to (excluding) 6.18.40
  • From (including) 5.18 - Up to (excluding) 7.1.5
  • From (including) 5.18 - Up to (excluding) 7.2
CVE-2026-80662 HIGH (7.1) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: cxl: Fix CXL_HEADERLOG_SIZE to match RAS Capability size The CXL r4.0 8.2.4.17.7 RAS Capability Structure has total length 0x58 bytes (CXL_RAS_CAPABILITY_LENGTH); the Header Log occupies the trailing 64 bytes at offset 0x18. CXL_HEADERLOG_SIZE was defined as SZ_512, eight times the actual on-device size. header_log_copy() reads CXL_HEADERLOG_SIZE_U32 (128) dwords from the RAS capability iomap, overrunning the 88-byte mapping by 448 bytes. The cxl_aer_uncorrectable_error trace event memcpy()s CXL_HEADERLOG_SIZE (512) bytes from its source. For the CPER caller the source is struct cxl_ras_capability_regs::header_log[16] (64 bytes) embedded in a stack-local cxl_cper_prot_err_work_data, so the memcpy reads 448 bytes of kernel stack into the trace event ring buffer where userspace can read it via tracefs. Set CXL_HEADERLOG_SIZE to 64 and derive CXL_HEADERLOG_SIZE_U32 from it, bringing all iomap readers into agreement on 16 dwords. Userspace tools such as rasdaemon have grown a dependency on the buggy 512-byte (128 u32) header_log layout in the cxl_aer_uncorrectable_error trace event. Add CXL_HEADERLOG_TRACE_SIZE_U32 = 128 and use it for the trace event __array and its memcpy to preserve that ABI. Both callers now pass a zero-filled u32[CXL_HEADERLOG_TRACE_SIZE_U32] staging buffer with only the first CXL_HEADERLOG_SIZE_U32 (16) entries populated from hardware; the remaining 112 u32s are zero-padded, keeping the 512-byte trace ring buffer layout intact. [ dj: Replaced 64 with SZ_64 per RichardC ]

Affected versions
  • From (including) 6.2 - Up to (excluding) 6.18.42
  • From (including) 6.2 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.2 - Up to (excluding) 7.2
CVE-2026-80661 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ufs: core: tracing: Do not dereference pointers in TP_printk() The trace events in drivers/ufs/core/ufs_trace.h were converted to take a pointer to the hba structure as an argument for the tracepoint and then in TP_printk() the printing of the dev_name from the ring buffer was converted to using the dev dereferenced pointer from the hba saved pointer. This is not allowed as the TP_printk() is executed at the time the trace event is read from /sys/kernel/tracing/trace file. That can happen literally, seconds, minutes, hours, weeks, days, or even months later! There is no guarantee that the hba pointer will still exist by the time it is dereferenced when the "trace" file is read. Instead, save the device name from the hba pointer at the time the tracepoint is called and place it into the ring buffer event. Then the TP_printk() can read the name directly from the ring buffer and remove the possibility that it will read a freed pointer and crash the kernel. This was detected when testing the trace event code that looks for TP_printk() parameters doing illegal derferences[1] [1] https://lore.kernel.org/all/20260630184836.74d477b6@gandalf.local.home/

Affected versions
  • From (including) 6.15 - Up to (excluding) 6.18.40
  • From (including) 6.15 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.15 - Up to (excluding) 7.2
CVE-2026-80656 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: hfsplus: Add a sanity check for btree node size Syzbot reported an uninit-value bug in [1] with a corrupted HFS+ image, during the file system mounting process, specifically while loading the catalog, a corrupted node_size value of 1 caused the rec_off argument passed to hfs_bnode_read_u16() (within hfs_bnode_find()) to be excessively large. Consequently, the function failed to return a valid value to initialize the off variable, triggering the bug [1]. Every node starts from BTree node descriptor: struct hfs_bnode_desc. So, the size of node cannot be lesser than that. However, technical specification declares that: "The node size (which is expressed in bytes) must be power of two, from 512 through 32,768, inclusive." Add a check for btree node size base on technical specification. [1] BUG: KMSAN: uninit-value in hfsplus_bnode_find+0x141c/0x1600 fs/hfsplus/bnode.c:584 hfsplus_bnode_find+0x141c/0x1600 fs/hfsplus/bnode.c:584 hfsplus_btree_open+0x169a/0x1e40 fs/hfsplus/btree.c:382 hfsplus_fill_super+0x111f/0x2770 fs/hfsplus/super.c:553 get_tree_bdev_flags+0x6e6/0x920 fs/super.c:1694 get_tree_bdev+0x38/0x50 fs/super.c:1717 hfsplus_get_tree+0x35/0x40 fs/hfsplus/super.c:709 vfs_get_tree+0xb3/0x5d0 fs/super.c:1754 fc_mount fs/namespace.c:1193 [inline]

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80653 HIGH (8.4) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: scsi: hisi_sas: Add slave_destroy interface for v3 hw WARNING is triggered when executing link reset of remote PHY and rmmod SAS driver simultaneously. Following is the WARNING log: WARNING: CPU: 61 PID: 21818 at drivers/base/core.c:1347 __device_links_no_driver+0xb4/0xc0 Call trace: __device_links_no_driver+0xb4/0xc0 device_links_driver_cleanup+0xb0/0xfc __device_release_driver+0x198/0x23c device_release_driver+0x38/0x50 bus_remove_device+0x130/0x140 device_del+0x184/0x434 __scsi_remove_device+0x118/0x150 scsi_remove_target+0x1bc/0x240 sas_rphy_remove+0x90/0x94 sas_rphy_delete+0x24/0x3c sas_destruct_devices+0x64/0xa0 [libsas] sas_revalidate_domain+0xe4/0x150 [libsas] process_one_work+0x1e0/0x46c worker_thread+0x15c/0x464 kthread+0x160/0x170 ret_from_fork+0x10/0x20 ---[ end trace 71e059eb58f85d4a ]--- During SAS phy up, link->status is set to DL_STATE_AVAILABLE in device_links_driver_bound, then this setting influences __device_links_no_driver() before driver rmmod and caused WARNING. Add the slave_destroy interface to make sure link is removed after flush workque.

Affected versions
  • From (including) 5.10 - Up to (excluding) 6.18.40
  • From (including) 5.10 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 5.10 - Up to (excluding) 7.2
CVE-2026-80649 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: firmware: arm_scmi: Fix OOB in scmi_power_name_get() scmi_power_name_get() does not validate the domain number passed by the external caller, which may lead to an out-of-bounds access. Fix this by returning "unknown" for invalid domains, like scmi_reset_name_get() does.

Affected versions
  • From (including) 4.17 - Up to (excluding) 5.15.212
  • From (including) 4.17 - Up to (excluding) 6.1.178
Show 5 more
  • From (including) 4.17 - Up to (excluding) 6.6.145
  • From (including) 4.17 - Up to (excluding) 6.12.97
  • From (including) 4.17 - Up to (excluding) 6.18.40
  • From (including) 4.17 - Up to (excluding) 7.1.5
  • From (including) 4.17 - Up to (excluding) 7.2
CVE-2026-80646 HIGH (7.5) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ipv6: guard against possible NULL deref in __in6_dev_stats_get() dev_get_by_index_rcu() could return NULL if the original physical device is unregistered. Found by Sashiko.

Affected versions
  • From (including) 4.19.291 - Up to (excluding) 4.20
  • From (including) 5.2 - Up to (excluding) 5.10.261
Show 7 more
  • From (including) 5.2 - Up to (excluding) 5.15.212
  • From (including) 5.2 - Up to (excluding) 6.1.178
  • From (including) 5.2 - Up to (excluding) 6.6.145
  • From (including) 5.2 - Up to (excluding) 6.12.97
  • From (including) 5.2 - Up to (excluding) 6.18.40
  • From (including) 5.2 - Up to (excluding) 7.1.5
  • From (including) 5.2 - Up to (excluding) 7.2
CVE-2026-80645 HIGH (8.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: rapidio/tsi721: prevent a bad dereference in tsi721_db_dpc() With a list_for_each() loop, if we don't find the item we are looking for in the list, then the loop exits with the iterator, which is "dbell" in this loop, pointing to invalid memory. This code uses the "found" variable to determine if we have found the doorbell we are looking for or not. However, the problem that the "found" variable needs to be set to false at the start of each iteration, otherwise after the first correct doorbell, then everything is marked as found. Reset the "found" to false at the start of the iteration and move the variable inside the loop.

Affected versions
  • From (including) 3.2 - Up to (excluding) 5.10.261
  • From (including) 3.2 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 3.2 - Up to (excluding) 6.1.178
  • From (including) 3.2 - Up to (excluding) 6.6.145
  • From (including) 3.2 - Up to (excluding) 6.12.97
  • From (including) 3.2 - Up to (excluding) 6.18.40
  • From (including) 3.2 - Up to (excluding) 7.1.5
  • From (including) 3.2 - Up to (excluding) 7.2
CVE-2026-80638 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix out-of-bounds write in ocfs2_remove_refcount_extent [BUG] Unlinking a refcounted file whose refcount tree has leaf blocks triggers a fortify panic due to an out-of-bounds write. [CAUSE] When the last leaf block is removed from a refcount tree, ocfs2_remove_refcount_extent() converts the root back to leaf mode with a bulk memset on &rb->rf_records. rf_records sits in an anonymous union with rf_list. rf_list.l_tree_depth aliases rf_records.rl_count, and is 0 for a single-level tree. With rl_count equal to 0, the memset writes past the 16-byte declared size of rf_records, which the fortify checker catches. [FIX] Replace the bulk memset on &rb->rf_records with a correctly-bounded memset on rl_recs[] alone, after setting rl_count to the correct value.

Affected versions
  • From (including) 6.19 - Up to (excluding) 7.1.5
  • From (including) 6.19 - Up to (excluding) 7.2
CVE-2026-80637 HIGH (7.5) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: netfilter: synproxy: fix unaligned memory access in timestamp adjustment Use get_unaligned_be32() and put_unaligned_be32() to safely read and write the timestamp fields. This prevents performance degradation due to unaligned memory access or even a crash on strict alignment architectures. This follows the implementation of timestamp parsing in the networking stack at tcp_parse_options() and synproxy_parse_options().

Affected versions
  • From (including) 3.12 - Up to (excluding) 6.12.97
  • From (including) 3.12 - Up to (excluding) 6.18.40
Show 2 more
  • From (including) 3.12 - Up to (excluding) 7.1.5
  • From (including) 3.12 - Up to (excluding) 7.2
CVE-2026-80635 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: wifi: wcn36xx: fix OOB read from short trigger BA firmware response The firmware response length is only checked against sizeof(*rsp) (20 bytes), but when candidate_cnt >= 1, a 22-byte candidate struct is read at buf + 20 without verifying the response contains it. This causes an out-of-bounds read of stale heap data, corrupting the BA session state. Add validation that the response includes the candidate data.

Affected versions
  • From (including) 4.7 - Up to (excluding) 6.1.178
  • From (including) 4.7 - Up to (excluding) 6.6.145
Show 4 more
  • From (including) 4.7 - Up to (excluding) 6.12.97
  • From (including) 4.7 - Up to (excluding) 6.18.40
  • From (including) 4.7 - Up to (excluding) 7.1.5
  • From (including) 4.7 - Up to (excluding) 7.2
CVE-2026-80634 CRITICAL (9.8) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag The DEV_PATH_BR_VLAN_UNTAG case post-decrements info->num_encaps inside WARN_ON_ONCE(). num_encaps is u8, so if it's already 0 the decrement still happens and wraps it to 255. The break only leaves the inner switch -- a later path entry can set info->indev back to a real device, and we end up returning with num_encaps == 255. nft_dev_forward_path() then walks info.encap[] (size 2) up to num_encaps, which means an OOB stack read and a bogus count copied into the route descriptor. Should only happen on a malformed bridge path stack, hence the WARN, but worth handling sanely. Move the decrement out of the WARN. [ While at this, remove the WARN_ON_ONCE since this can only happen with a buggy bridge path stack --pablo ].

Affected versions
  • From (including) 5.13 - Up to (excluding) 7.1.5
  • From (including) 5.13 - Up to (excluding) 7.2
CVE-2026-80633 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: iommufd: Take dma_resv lock before dma_buf_unpin() in release path dma_buf_unpin() requires the caller to hold the exporter's dma_resv lock: void dma_buf_unpin(struct dma_buf_attachment *attach) { ... dma_resv_assert_held(dmabuf->resv); ... } iopt_release_pages() calls dma_buf_unpin() without taking that lock, so every iommufd_ioas_destroy()/iommufd_ioas_unmap() that releases the last reference on a DMABUF-backed iopt_pages triggers a WARN. This was hit while running tools/testing/selftests/iommu/iommufd: WARNING: drivers/dma-buf/dma-buf.c:1137 at dma_buf_unpin+0x62/0x70 RIP: 0010:dma_buf_unpin+0x62/0x70 Call Trace: <TASK> dma_buf_unpin+0x62/0x70 iopt_release_pages+0xe4/0x190 iopt_unmap_iova_range+0x1c7/0x290 iopt_unmap_all+0x1a/0x30 iommufd_ioas_destroy+0x1d/0x50 iommufd_fops_release+0x93/0x150 __fput+0xfc/0x2c0 __x64_sys_close+0x3d/0x80 do_syscall_64+0x65/0x180 </TASK> Take the dma_resv lock around dma_buf_unpin() in iopt_release_pages(), matching the iopt_map_dmabuf() convention. dma_buf_detach() acquires the reservation lock internally, so it must remain outside the locked region.

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80631 HIGH (7.5) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: btrfs: lzo: reject compressed segment that overflows the compressed input lzo_decompress_bio() validates each on-disk segment length seg_len only against the workspace cbuf size, not against the compressed input size (compressed_len, the total folio bytes of the bio). A crafted extent can carry a segment whose seg_len passes the cbuf check but runs past the end of the bio, so copy_compressed_segment() walks off the last folio: get_current_folio() then returns the NULL folio from bio_next_folio(), and with CONFIG_BTRFS_ASSERT disabled (default) folio_size(NULL) faults. BUG: KASAN: null-ptr-deref in lzo_decompress_bio (fs/btrfs/lzo.c:383) Read of size 8 at addr 0000000000000000 by task kworker/u8:1/29 Workqueue: btrfs-endio simple_end_io_work kasan_report (mm/kasan/report.c:590) lzo_decompress_bio (fs/btrfs/lzo.c:383) end_bbio_compressed_read (fs/btrfs/compression.c:1065) btrfs_bio_end_io (fs/btrfs/bio.c:135) btrfs_check_read_bio (fs/btrfs/bio.c:180 fs/btrfs/bio.c:285) simple_end_io_work process_one_work worker_thread Reject any segment whose payload would extend beyond compressed_len before copying it, treating it as corruption like the other on-disk validation failures in this function.

Affected versions
  • From (including) 5.15 - Up to (excluding) 7.1.5
  • From (including) 5.15 - Up to (excluding) 7.2
CVE-2026-80630 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_fq_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen Whenever fq_codel drops packets during peek, it calls qdisc_tree_reduce_backlog. An issue arises because it calls qdisc_tree_reduce_backlog before it reincrements the qlen. If qlen drops to zero, but peek returns an skb, the parent's qlen_notify callback will be executed even though fq_codel still has 1 packet on the queue and, thus, will mistakenly deactivate the parent's class causing issues like a recent report [1] and a wild memory access in qfq: [ 29.371146][ T360] Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI [ 29.371666][ T360] KASAN: maybe wild-memory-access in range [0xdead000000000120-0xdead000000000127] [ 29.371987][ T360] CPU: 6 UID: 0 PID: 360 Comm: tc Not tainted 7.1.0-rc5-00285-gc530e5b2dbc6-dirty #82 PREEMPT(full) [ 29.372384][ T360] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 29.372620][ T360] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:1029 (discriminator 2) include/linux/list.h:1043 (discriminator 2) net/sched/sch_qfq.c:1369 (discriminator 2) net/sched/sch_qfq.c:1395 (discriminator 2)) sch_qfq [ 29.373544][ T360] RSP: 0018:ffff888102417370 EFLAGS: 00010216 [ 29.373800][ T360] RAX: 0000000000000000 RBX: ffff88811224d568 RCX: dffffc0000000000 [ 29.374079][ T360] RDX: 1ffff11021fe1543 RSI: ffff88810ff0aa00 RDI: dffffc0000000000 [ 29.374368][ T360] RBP: ffff88811224c280 R08: dead000000000122 R09: 1bd5a00000000024 [ 29.374649][ T360] R10: fffffbfff7940329 R11: fffffbfff7940329 R12: 0000000000000000 [ 29.374926][ T360] R13: dead000000000100 R14: ffff88811224d580 R15: ffff88811224d578 [ 29.375207][ T360] FS: 00007f5b794e5780(0000) GS:ffff88815d1e9000(0000) knlGS:0000000000000000 [ 29.375545][ T360] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 29.375823][ T360] CR2: 000055ffb091f000 CR3: 000000010a305000 CR4: 0000000000750ef0 [ 29.376103][ T360] PKRU: 55555554 [ 29.376258][ T360] Call Trace: [ 29.376401][ T360] <TASK> ... [ 29.376885][ T360] qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1487) sch_qfq [ 29.377074][ T360] qdisc_reset (net/sched/sch_generic.c:1057) [ 29.377414][ T360] __qdisc_destroy (net/sched/sch_generic.c:1096) [ 29.377600][ T360] qdisc_graft (net/sched/sch_api.c:1062 net/sched/sch_api.c:1053 net/sched/sch_api.c:1159) [ 29.378593][ T360] tc_get_qdisc (net/sched/sch_api.c:1528 net/sched/sch_api.c:1556) Fix this by only calling qdisc_tree_reduce_backlog in peek after the qlen is restored. [1] http://lore.kernel.org/netdev/CAN2cbVe79oj0O9==m4+4x3v+O+qzRagA=2=wkrp9i9=CqYvyZA@mail.gmail.com/

Affected versions
  • From (including) 5.10.241 - Up to (excluding) 5.10.261
  • From (including) 5.15.190 - Up to (excluding) 5.15.212
Show 9 more
  • From (including) 6.1.135 - Up to (excluding) 6.1.178
  • From (including) 6.6.88 - Up to (excluding) 6.6.145
  • From (including) 6.12.24 - Up to (excluding) 6.12.97
  • From (including) 5.4.297 - Up to (excluding) 5.5
  • From (including) 6.13.12 - Up to (excluding) 6.14
  • From (including) 6.14.3 - Up to (excluding) 6.15
  • From (including) 6.15 - Up to (excluding) 6.18.40
  • From (including) 6.15 - Up to (excluding) 7.1.5
  • From (including) 6.15 - Up to (excluding) 7.2
CVE-2026-80628 HIGH (7.8) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: ALSA: seq: oss: Serialize readq reset state with q->lock snd_seq_oss_readq_clear() resets qlen, head, and tail without q->lock even though the normal reader and producer paths serialize the same ring state under that spinlock. A reset can therefore race snd_seq_oss_readq_free() or snd_seq_oss_readq_put_event() and leave stale records in the queue, drop freshly queued ones, or report the wrong readiness after wakeup. KCSAN reports a data race between snd_seq_oss_readq_clear() and snd_seq_oss_readq_free(). Take q->lock while clearing the ring and resetting input_time. Factor the enqueue logic into a caller-locked helper so snd_seq_oss_readq_put_timestamp() updates its suppression state under the same lock instead of racing the reset path. The buggy scenario involves two paths, with each column showing the order within that path: reset path: locked readq updater: 1. snd_seq_oss_reset() or 1. A reader or callback producer release reaches takes q->lock on the same queue. snd_seq_oss_readq_clear(). 2. snd_seq_oss_readq_clear() 2. The updater tests or modifies resets qlen, head, tail, qlen, head, and tail. and input_time. 3. snd_seq_oss_readq_clear() 3. The updater completes its wakes sleepers on read-modify-write sequence. q->midi_sleep. 4. Without q->lock, the reset 4. The resulting ring state drives can overlap the locked later reads and readiness. update. KCSAN reports: BUG: KCSAN: data-race in snd_seq_oss_readq_clear / snd_seq_oss_readq_free write to 0xffff8881069fe608 of 4 bytes by task 120516 on cpu 0: snd_seq_oss_readq_free+0x6c/0x80 snd_seq_oss_read+0xcb/0x250 odev_read+0x38/0x60 vfs_read+0xff/0x600 ksys_read+0xb4/0x140 __x64_sys_read+0x46/0x60 do_syscall_64+0xbb/0x2f0 entry_SYSCALL_64_after_hwframe+0x77/0x7f read to 0xffff8881069fe608 of 4 bytes by task 120517 on cpu 1: snd_seq_oss_readq_clear+0x1f/0x90 snd_seq_oss_reset+0xa7/0xf0 snd_seq_oss_ioctl+0x6f6/0x7e0 odev_ioctl+0x56/0xc0 __x64_sys_ioctl+0xd1/0x120 do_syscall_64+0xbb/0x2f0 entry_SYSCALL_64_after_hwframe+0x77/0x7f value changed: 0x00000001 -> 0x00000000

Affected versions
  • From (including) 2.6.12 - Up to (excluding) 6.18.40
  • From (including) 2.6.12 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 2.6.12 - Up to (excluding) 7.2
CVE-2026-80622 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: char: tlclk: fix use-after-free in tlclk_cleanup() This patch improves the module cleanup process in the tlclk driver to prevent potential use-after-free and race conditions. Currently, the file_operations structure does not specify the .owner field, which could allow the module to be unloaded while user-space processes are still interacting with the device. Additionally, the tlclk_cleanup() function frees the alarm_events memory before ensuring that blocked processes in the waitqueue are fully awakened and that the switchover_timer has completed. To address these cases, this patch: - Sets '.owner = THIS_MODULE' in tlclk_fops to safely defer module unloading while the device is in use. - Updates tlclk_cleanup() to explicitly wake up all blocked readers (wake_up_all), properly release hardware I/O regions, and safely delete the timer (timer_delete_sync) prior to freeing memory.

Affected versions
  • From (including) 2.6.15 - Up to (excluding) 5.10.261
  • From (including) 2.6.15 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 2.6.15 - Up to (excluding) 6.1.178
  • From (including) 2.6.15 - Up to (excluding) 6.6.145
  • From (including) 2.6.15 - Up to (excluding) 6.12.97
  • From (including) 2.6.15 - Up to (excluding) 6.18.40
  • From (including) 2.6.15 - Up to (excluding) 7.1.5
  • From (including) 2.6.15 - Up to (excluding) 7.2
CVE-2026-80619 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: apparmor: fix potential UAF in aa_replace_profiles The function aa_replace_profiles was accessing udata->size after calling aa_put_loaddata(udata), causing a potential UAF. Fixed this by saving the size to a local variable before dropping the reference.

Affected versions
  • From (including) 4.11 - Up to (excluding) 5.10.261
  • From (including) 4.11 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 4.11 - Up to (excluding) 6.1.178
  • From (including) 4.11 - Up to (excluding) 6.6.145
  • From (including) 4.11 - Up to (excluding) 6.12.97
  • From (including) 4.11 - Up to (excluding) 6.18.40
  • From (including) 4.11 - Up to (excluding) 7.1.5
  • From (including) 4.11 - Up to (excluding) 7.2
CVE-2026-80617 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net: airoha: fix foe_check_time allocation size foe_check_time is declared as u16 pointer but was allocated with only ppe_num_entries bytes instead of ppe_num_entries * sizeof(u16). When airoha_ppe_foe_verify_entry() is called with hash >= ppe_num_entries/2, it writes beyond the allocated buffer, causing heap buffer overflow and potential kernel crash.

Affected versions
  • From (including) 6.18.33 - Up to (excluding) 6.18.40
  • From (including) 6.19 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.19 - Up to (excluding) 7.2
CVE-2026-80615 HIGH (8.2) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net: dst_metadata: fix false-positive memcpy overflow in tun_dst_unclone kmalloc_flex() in metadata_dst_alloc() sets __counted_by for the structure to the options_len, which is then initialized to zero. Later, we're initializing the structure by copying the tunnel info together with the options, and this triggers a warning for a potential memcpy overflow, since the compiler estimates that the options can't fit into the structure, even though the memory for them is actually allocated. memcpy: detected buffer overflow: 104 byte write of buffer size 96 WARNING: CPU: X PID: Y at lib/string_helpers.c:1036 __fortify_report skb_tunnel_info_unclone+0x179/0x190 geneve_xmit+0x7fe/0xe00 The issue is triggered when built with clang and source fortification. Fix that by doing the copy in two stages: first - the main data with the options_len, then the options. This way the correct length should be known at the time of the copy. It would be better if the options_len never changed after allocation, but the allocation code is a little separate from the initialization and it would be awkward and potentially dangerous to return a struct with options_len set to a non-zero value from the metadata_dst_alloc(). Another option would be to use ip_tunnel_info_opts_set(), but it is doing too many unnecessary operations for the use case here.

Affected versions
  • From (including) 7.0 - Up to (excluding) 7.1.5
  • From (including) 7.0 - Up to (excluding) 7.2
CVE-2026-80614 HIGH (7.5) 2026-08-28 Current versionaffected

In the Linux kernel, the following vulnerability has been resolved: net: emac: Fix NULL pointer dereference in emac_probe Move devm_request_irq() after devm_platform_ioremap_resource() so that dev->emacp is mapped before the interrupt handler can fire. An early interrupt hitting emac_irq() would dereference the NULL dev->emacp and crash. Also remove redundant error message. devm_platform_ioremap_resource() already returns an error message with dev_err_probe().

Affected versions
  • From (including) 6.12 - Up to (excluding) 6.18.40
  • From (including) 6.12 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.12 - Up to (excluding) 7.2
CVE-2026-80613 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: veth: fix NAPI leak in XDP enable error path During XDP enablement in veth, if xdp_rxq_info_reg() or xdp_rxq_info_reg_mem_model() fails, the driver rolls back the changes. However, the rollback loop: for (i--; i >= start; i--) { decrements the loop index 'i' before the first iteration. This correctly skips unregistering the rxq for the failed index 'i' (as registration failed or was already cleaned up), but it also erroneously skips calling netif_napi_deli() for rq[i].xdp_napi. Since netif_napi_add() was already called for index 'i', this leaves a dangling napi_struct in the device's napi_list. When the veth device is later destroyed, the freed queue memory (which contains the leaked NAPI structure) can be reused. The subsequent device teardown iterates the NAPI list and corrupts the reallocated memory, leading to UAF. Fix this by explicitly deleting the NAPI association for the failed index 'i' before rolling back the successfully configured queues.

Affected versions
  • From (including) 5.11 - Up to (excluding) 5.15.212
  • From (including) 5.11 - Up to (excluding) 6.1.178
Show 5 more
  • From (including) 5.11 - Up to (excluding) 6.6.145
  • From (including) 5.11 - Up to (excluding) 6.12.97
  • From (including) 5.11 - Up to (excluding) 6.18.40
  • From (including) 5.11 - Up to (excluding) 7.1.5
  • From (including) 5.11 - Up to (excluding) 7.2
CVE-2026-80612 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: net: lwtunnel: Drop skb metadata before LWT encapsulation skb metadata is meant for passing information between XDP and TC. It lives in the skb headroom, immediately before skb->data. LWT programs cannot access the __sk_buff->data_meta pseudo-pointer to metadata. However, LWT encapsulation prepends outer headers, moving skb->data back over the headroom where the metadata sits. On an RX-originated (forwarded) packet that still carries XDP metadata this goes wrong in two different ways, depending on the encap type: 1. Non-BPF LWT encaps (mpls, seg6, ioam6 ...) call skb_push()/skb_pull() and silently overwrite the metadata that sits in the headroom. 2) BPF LWT xmit calls bpf_skb_change_head(), which uses skb_data_move(). That helper expects metadata immediately before skb->data. But since the IP output path runs LWT xmit before neighbour output has built the outgoing L2 header, for forwarded packets skb->data points at the L3 header while skb_mac_header() still points at the old L2 header. skb_data_move() sees metadata ending at skb_mac_header(), not before skb->data, warns and clears metadata: WARNING: CPU: 21 PID: 454557 at include/linux/skbuff.h:4609 skb_data_move+0x47/0x90 CPU: 21 UID: 0 PID: 454557 Comm: napi/iconduit-g Tainted: G O 6.18.21 #1 RIP: 0010:skb_data_move+0x47/0x90 Call Trace: <IRQ> bpf_skb_change_head+0xe6/0x1a0 bpf_prog_...+0x213/0x2e3 run_lwt_bpf.isra.0+0x1d3/0x360 bpf_xmit+0x46/0xe0 lwtunnel_xmit+0xa1/0xf0 ip_finish_output2+0x1e7/0x5e0 ip_output+0x63/0x100 __netif_receive_skb_one_core+0x85/0xa0 process_backlog+0x9c/0x150 __napi_poll+0x2b/0x190 net_rx_action+0x40b/0x7f0 handle_softirqs+0xd2/0x270 do_softirq+0x3f/0x60 </IRQ> That is what happens, as for how to fix it - a received packet that carries metadata can reach an encap through any of the three LWT redirect modes: LWTUNNEL_STATE_INPUT_REDIRECT ip6_rcv_finish dst_input lwtunnel_input LWTUNNEL_STATE_OUTPUT_REDIRECT ip6_rcv_finish dst_input ip6_forward ip6_forward_finish dst_output lwtunnel_output LWTUNNEL_STATE_XMIT_REDIRECT ip6_rcv_finish dst_input ip6_forward ip6_forward_finish dst_output ip6_output ip6_finish_output ip6_finish_output2 lwtunnel_xmit Every encap funnels through the three LWT dispatch helpers, so drop the metadata there, right before handing the skb to the encap op. This single chokepoint covers all encap types and all three redirect modes: - lwtunnel_input(): seg6, rpl, ila, seg6_local - lwtunnel_output(): ioam6 - lwtunnel_xmit(): mpls, LWT BPF xmit Alternatively, we could clear the metadata right after TC ingress hook. That would require a compromise, however. Metadata would become inaccessible from TC egress (in setups where it actually reaches the hook it tact, that is without any L2 tunnels on path).

Affected versions
  • From (including) 6.19 - Up to (excluding) 7.1.5
  • From (including) 6.19 - Up to (excluding) 7.2
CVE-2026-80609 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: qede: fix out-of-bounds check for cqe->len_list[] Move index check before element access.

Affected versions
  • From (including) 5.15.197 - Up to (excluding) 5.15.212
  • From (including) 6.1.159 - Up to (excluding) 6.1.178
Show 6 more
  • From (including) 6.6.118 - Up to (excluding) 6.6.145
  • From (including) 6.12.60 - Up to (excluding) 6.12.97
  • From (including) 6.17.10 - Up to (excluding) 6.18
  • From (including) 6.18 - Up to (excluding) 6.18.40
  • From (including) 6.18 - Up to (excluding) 7.1.5
  • From (including) 6.18 - Up to (excluding) 7.2
CVE-2026-80608 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: accel/amdxdna: Fix iommu domain lifetime race during device removal When force_iova mode is enabled, amdxdna_remove() frees xdna->domain. If amdxdna_gem_obj_free() is called after device removal, it may attempt to access xdna->domain, resulting in a use-after-free. Fix the race by adding freeing xdna->domain as a managed release action, so its lifetime is managed by DRM and remains valid until all managed resources are released.

Affected versions
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80606 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: drm/xe/userptr: Hold notifier_lock for write on inject test path When CONFIG_DRM_XE_USERPTR_INVAL_INJECT=y, xe_pt_svm_userptr_pre_commit() runs vma_check_userptr() with the svm notifier_lock taken for read. The test injection causes vma_check_userptr() to call xe_vma_userptr_force_invalidate(), which feeds into xe_vma_userptr_do_inval() with drm_gpusvm_ctx.in_notifier=true. That flag tells drm_gpusvm_unmap_pages() the caller already holds notifier_lock for write and only asserts the mode. Because the caller actually holds it for read, the assertion fires: WARNING: drivers/gpu/drm/drm_gpusvm.c:1669 at \ drm_gpusvm_unmap_pages+0xd4/0x130 [drm_gpusvm_helper] Call Trace: xe_vma_userptr_do_inval+0x40d/0xfd0 [xe] xe_vma_userptr_invalidate_pass1+0x3e6/0x8d0 [xe] xe_vma_userptr_force_invalidate+0xde/0x290 [xe] vma_check_userptr.constprop.0+0x1c6/0x220 [xe] xe_pt_svm_userptr_pre_commit+0x6a3/0xc60 [xe] ... xe_vm_bind_ioctl+0x3a0a/0x4480 [xe] Acquire notifier_lock for write in pre-commit when the inject Kconfig is enabled, via new helpers xe_pt_svm_userptr_notifier_lock()/_unlock(). Rename xe_svm_assert_held_read() to xe_svm_assert_held_read_or_inject_write() so it asserts the correct mode under each build configuration. Production builds (CONFIG_DRM_XE_USERPTR_INVAL_INJECT=n) keep the existing read-mode behavior bit-for-bit. (cherry picked from commit 80ccbd97ffee8ad2e73167d826fe7be548364365)

Affected versions
  • From (including) 6.18 - Up to (excluding) 6.18.40
  • From (including) 6.18 - Up to (excluding) 7.1.5
Show 1 more
  • From (including) 6.18 - Up to (excluding) 7.2
CVE-2026-80604 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: HID: core: Fix OOB read in hid_get_report for numbered reports When a caller passes a size of 0 to hid_report_raw_event() for a numbered report, the function originally called hid_get_report() before performing any size validation. Inside hid_get_report(), if the report is numbered (report_enum->numbered is true), it unconditionally dereferences data[0] to extract the report ID. With a size of 0, this results in an out-of-bounds read or kernel panic. Fix this by moving the numbered report size validation check before the call to hid_get_report(), ensuring that size is at least 1 before dereferencing the data pointer.

Affected versions
  • From (including) 5.10.259 - Up to (excluding) 5.10.261
  • From (including) 5.15.210 - Up to (excluding) 5.15.212
Show 7 more
  • From (including) 6.1.176 - Up to (excluding) 6.1.178
  • From (including) 6.6.143 - Up to (excluding) 6.6.145
  • From (including) 6.12.93 - Up to (excluding) 6.12.97
  • From (including) 6.18.33 - Up to (excluding) 6.18.40
  • From (including) 7.0.10 - Up to (excluding) 7.1
  • From (including) 7.1 - Up to (excluding) 7.1.5
  • From (including) 7.1 - Up to (excluding) 7.2
CVE-2026-80603 CRITICAL (9.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read parse_dcc() treats data_end as an inclusive end pointer, but its only caller passes data_limit = ib_ptr + datalen, which points one past the last valid byte. The newline search loop iterates while tmp <= data_end, so when no newline is present, *tmp is read at tmp == data_end, one byte beyond the region filled by skb_header_pointer(). irc_buffer is kmalloc'd as MAX_SEARCH_SIZE + 1 bytes and datalen is capped at MAX_SEARCH_SIZE, so the stray read does not fault. The byte is uninitialized or stale; if it contains an ASCII digit, simple_strtoul will consume it and produce a wrong DCC IP or port in the conntrack expectation. The extra allocation byte is also a fragile guard: if the cap or allocation size changes, this becomes a real out-of-bounds read. Change the loop and its post-loop check to use strict less-than, consistent with the caller's exclusive-end convention. Update the function comment accordingly.

Affected versions
  • From (including) 2.6.12 - Up to (excluding) 5.10.261
  • From (including) 2.6.12 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 2.6.12 - Up to (excluding) 6.1.178
  • From (including) 2.6.12 - Up to (excluding) 6.6.145
  • From (including) 2.6.12 - Up to (excluding) 6.12.97
  • From (including) 2.6.12 - Up to (excluding) 6.18.40
  • From (including) 2.6.12 - Up to (excluding) 7.1.5
  • From (including) 2.6.12 - Up to (excluding) 7.2
CVE-2026-80601 HIGH (8.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: batman-adv: gw: acquire ethernet header only after skb realloc The pskb_may_pull() called by batadv_get_vid() could reallocate the buffer behind the skb. Variables which were pointing to the old buffer need to be reassigned to avoid an use-after-free.

Affected versions
  • From (including) 3.14 - Up to (excluding) 5.10.261
  • From (including) 3.14 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 3.14 - Up to (excluding) 6.1.178
  • From (including) 3.14 - Up to (excluding) 6.6.145
  • From (including) 3.14 - Up to (excluding) 6.12.97
  • From (including) 3.14 - Up to (excluding) 6.18.40
  • From (including) 3.14 - Up to (excluding) 7.1.5
  • From (including) 3.14 - Up to (excluding) 7.2
CVE-2026-80600 CRITICAL (9.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: batman-adv: dat: acquire ARP hw source only after skb realloc The pskb_may_pull() called by batadv_get_vid() could reallocate the buffer behind the skb. Variables which were pointing to the old buffer need to be reassigned to avoid an use-after-free.

Affected versions
  • From (including) 5.1 - Up to (excluding) 5.10.261
  • From (including) 5.1 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 5.1 - Up to (excluding) 6.1.178
  • From (including) 5.1 - Up to (excluding) 6.6.145
  • From (including) 5.1 - Up to (excluding) 6.12.97
  • From (including) 5.1 - Up to (excluding) 6.18.40
  • From (including) 5.1 - Up to (excluding) 7.1.5
  • From (including) 5.1 - Up to (excluding) 7.2
CVE-2026-80599 HIGH (8.1) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: batman-adv: dat: ensure accessible eth_hdr proto field When batadv_get_vid() accesses the proto field of the ethernet header, it is not checking if the data itself is accessible. The caller is responsible for it. But in contrast to other call sites, batadv_dat_get_vid() and its caller didn't make sure this is true. This could have caused an out-of-bounds access.

Affected versions
  • From (including) 3.13 - Up to (excluding) 5.10.261
  • From (including) 3.13 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 3.13 - Up to (excluding) 6.1.178
  • From (including) 3.13 - Up to (excluding) 6.6.145
  • From (including) 3.13 - Up to (excluding) 6.12.97
  • From (including) 3.13 - Up to (excluding) 6.18.40
  • From (including) 3.13 - Up to (excluding) 7.1.5
  • From (including) 3.13 - Up to (excluding) 7.2
CVE-2026-80598 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: ntfs3: fix out-of-bounds read in decompress_lznt decompress_lznt() does not validate array index bounds before accessing the decompression table. A corrupted NTFS3 image with invalid compressed data can trigger an out-of-bounds read. Add index bounds checking to prevent the OOB access.

Affected versions
  • From (including) 5.15 - Up to (excluding) 5.15.212
  • From (including) 5.15 - Up to (excluding) 6.1.178
Show 5 more
  • From (including) 5.15 - Up to (excluding) 6.6.145
  • From (including) 5.15 - Up to (excluding) 6.12.97
  • From (including) 5.15 - Up to (excluding) 6.18.40
  • From (including) 5.15 - Up to (excluding) 7.1.5
  • From (including) 5.15 - Up to (excluding) 7.2
CVE-2026-80596 HIGH (8.4) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: Input: ims-pcu - only expose sysfs attributes on control interface When the driver was converted to use the driver core to instantiate device attributes (via .dev_groups in the usb_driver structure), the attributes started appearing on all interfaces bound to the driver. Since the ims-pcu driver manually claims the secondary data interface during probe, the driver core automatically creates the sysfs attributes for that interface as well. However, the driver only supports these attributes on the primary control interface. Data interfaces lack the necessary descriptors and internal state to handle these requests, and accessing them can lead to unexpected behavior or crashes. Fix this by updating the is_visible() callbacks for both the main and OFN attribute groups to verify that the interface being accessed is indeed the control interface.

Affected versions
  • From (including) 6.11 - Up to (excluding) 6.12.97
  • From (including) 6.11 - Up to (excluding) 6.18.40
Show 2 more
  • From (including) 6.11 - Up to (excluding) 7.1.5
  • From (including) 6.11 - Up to (excluding) 7.2
CVE-2026-80593 HIGH (8.4) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: hwmon: (asus_atk0110) Check package count before accessing element atk_ec_present() walks the management group package returned by the GGRP ACPI method and, for each sub-package, reads its first element: id = &obj->package.elements[0]; if (id->type != ACPI_TYPE_INTEGER) without checking that the sub-package is non-empty. ACPICA allocates the element array with exactly package.count entries, so for a sub-package with a zero count this reads past the allocation. The sibling function atk_debugfs_ggrp_open() performs the same access but skips empty packages with a package.count check first. Add the same check to atk_ec_present() so a malformed firmware package cannot trigger an out-of-bounds read.

Affected versions
  • From (including) 2.6.32 - Up to (excluding) 5.10.261
  • From (including) 2.6.32 - Up to (excluding) 5.15.212
Show 6 more
  • From (including) 2.6.32 - Up to (excluding) 6.1.178
  • From (including) 2.6.32 - Up to (excluding) 6.6.145
  • From (including) 2.6.32 - Up to (excluding) 6.12.97
  • From (including) 2.6.32 - Up to (excluding) 6.18.40
  • From (including) 2.6.32 - Up to (excluding) 7.1.5
  • From (including) 2.6.32 - Up to (excluding) 7.2
CVE-2026-80591 HIGH (7.8) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: f2fs: fix listxattr handling of corrupted xattr entries Validate the xattr entry before reading its fields in f2fs_listxattr(). Return -EFSCORRUPTED when the entry is outside the valid xattr storage area instead of returning a successful partial result.

Affected versions
  • From (including) 4.14.181 - Up to (excluding) 4.15
  • From (including) 4.19.119 - Up to (excluding) 4.20
Show 9 more
  • From (including) 5.4.36 - Up to (excluding) 5.5
  • From (including) 5.5 - Up to (excluding) 5.10.261
  • From (including) 5.5 - Up to (excluding) 5.15.212
  • From (including) 5.5 - Up to (excluding) 6.1.178
  • From (including) 5.5 - Up to (excluding) 6.6.145
  • From (including) 5.5 - Up to (excluding) 6.12.96
  • From (including) 5.5 - Up to (excluding) 6.18.39
  • From (including) 5.5 - Up to (excluding) 7.1.5
  • From (including) 5.5 - Up to (excluding) 7.2
CVE-2026-80590 HIGH (8.6) 2026-08-28 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: inet: frags: strip GSO state from fragments before reassembly A virtio_net_hdr (tun/tap, or AF_PACKET with PACKET_VNET_HDR) can mark an IPv4 or IPv6 fragment as GSO; nothing relates gso_type to frag_off. inet_frag_reasm_prepare()/inet_frag_reasm_finish() keep the first fragment's skb as the head of the reassembled datagram, including its shinfo->gso_size/gso_type/gso_segs, and chain the remaining fragments on frag_list with whatever linear/paged layout they arrived with. After ip_defrag() (ip_local_deliver(), nf_defrag_ipv4, ...) the reassembled skb therefore still claims to be GSO (SKB_GSO_DODGY), and the next software segmentation point - udp_rcv_segment() on local delivery, validate_xmit_skb(), or the ip_finish_output_gso() slow path - hands it to skb_segment(). skb_segment()'s frag_list walk assumes GRO-shaped input and hits one of its BUG_ON()s. Two writes to a tap by an unprivileged user in its own userns are enough: kernel BUG at net/core/skbuff.c:4899! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 1000 PID: 82 Comm: poc Not tainted 7.2.0-pentest+ #2 RIP: 0010:skb_segment+0x20ca/0x48b0 Call Trace: <TASK> __udp_gso_segment+0x29a/0x27d0 udp4_ufo_fragment+0x458/0x6c0 inet_gso_segment+0x429/0x1340 skb_mac_gso_segment+0x233/0x4f0 __skb_gso_segment+0x308/0x660 udp_queue_rcv_skb+0x440/0xad0 udp_unicast_rcv_skb+0xc7/0x2c0 udp_rcv+0x16ce/0x2260 ip_protocol_deliver_rcu+0x197/0x2d0 ip_local_deliver+0x430/0x690 ip_rcv+0x16f/0x1f0 __netif_receive_skb_one_core+0x15e/0x1c0 __netif_receive_skb+0x1e/0x110 netif_receive_skb+0xf6/0x5c0 tun_rx_batched.isra.0+0x3ab/0x790 tun_get_user+0x17c3/0x3550 tun_chr_write_iter+0xba/0x1b0 vfs_write+0x646/0x1130 </TASK> Kernel panic - not syncing: Fatal exception in interrupt This runs with BH disabled, so it is a panic rather than an oops. The same is reachable with CAP_NET_RAW in a netns where a defrag point precedes a GSO point, and from a guest whose VMM forwards virtio_net_hdr to a tap. The SKB_GSO_DODGY frag_list checks added by commit 3dcbdb134f32 ("net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list") and by commit 9e4b7a99a03a ("net: gso: fix panic on frag_list with mixed head alloc types") do not cover it: page-backed heads skip them, and kmalloc heads skip them when gso_size == skb_headlen(head), which the sender controls. An skb entering a frag queue is an IP fragment by definition and cannot legitimately carry GSO state: GRO does not merge fragments and the stack segments before it fragments, so only untrusted sources are affected. This has been reachable since commit f43798c27684 ("tun: Allow GSO using virtio_net_hdr"), the first path that let userspace attach GSO metadata to an IP fragment. Reset the GSO fields of every fragment as it is queued, in inet_frag_queue_insert(), which IPv4, IPv6, nf_conntrack_reasm and 6lowpan reassembly share; then neither the head nor the frag_list members of the reassembled skb carry them (the members matter too: the ip_do_fragment()/ip6_fragment() fast paths send them out as they are). The head may remain CHECKSUM_PARTIAL; that is already accepted on receive and resolved by skb_checksum_help() in ip_do_fragment()/ip6_fragment() on forward. Tested on top of net.git (dc4b95b8fee9), x86_64: the tap reproducer above, two further IPv4 frag_list geometries that reach BUG_ON(i >= nfrags) and BUG_ON(!list_skb->head_frag), and an IPv6 fragment-header variant (udp6_ufo_fragment()) each panic the unpatched kernel; with this patch all four datagrams are delivered intact and nothing is logged.

Affected versions
  • From (including) 2.6.27 - Up to (excluding) 5.10.268
  • From (including) 2.6.27 - Up to (excluding) 5.15.219
Show 7 more
  • From (including) 2.6.27 - Up to (excluding) 6.1.186
  • From (including) 2.6.27 - Up to (excluding) 6.6.155
  • From (including) 2.6.27 - Up to (excluding) 6.12.107
  • From (including) 2.6.27 - Up to (excluding) 6.18.48
  • From (including) 2.6.27 - Up to (excluding) 7.1.12
  • From (including) 2.6.27 - Up to (excluding) 7.2.2
  • From (including) 2.6.27 - Up to (excluding) 7.3-rc1
CVE-2026-80589 CRITICAL (9.8) 2026-08-26 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: block: stop the timeout timer when releasing a never added disk disk_release() undoes blk_mq_init_allocated_queue() for a disk whose probe failed before add_disk(), but it only calls blk_mq_exit_queue(). Nothing there stops q->timeout, and that timer rolls forward: it stays pending until it next expires, not until the last request completes. So if the driver issued any I/O before adding the disk, the request_queue is freed while still linked into a timer wheel bucket. Commit 6f8191fdf41d ("block: simplify disk shutdown") dropped the blk_cleanup_queue() call that used to stop it. __del_gendisk() and blk_mq_destroy_queue() still do; only the probe failure path lost it. nvme gets there because nvme_update_ns_info() submits Report Zones or FDP io-mgmt-recv on ns->queue before the disk is added, so a later failure - a concurrent reset setting NVME_CTRL_FROZEN, or device_add_disk() failing - lands in put_disk() with the timer armed: BUG: KASAN: slab-use-after-free in detach_if_pending+0x30c/0x340 Write of size 8 at addr ffff888004d71310 by task kworker/u8:2/37 __timer_delete_sync+0x156/0x240 kernel/time/timer.c:1621 blk_sync_queue+0x22/0x40 block/blk-core.c:222 nvme_sync_queues+0x100/0x150 drivers/nvme/host/core.c:5362 nvme_reset_work+0x138/0x930 drivers/nvme/host/pci.c:3264 Allocated by task 34: __blk_mq_alloc_disk+0x33/0x100 block/blk-mq.c:4462 nvme_alloc_ns+0x290/0x3870 drivers/nvme/host/core.c:4146 Freed by task 0: blk_free_queue_rcu+0x3a/0x50 block/blk-core.c:254 rcu_core+0xc10/0x1730 kernel/rcu/tree.c:2857 The queue being synced there is ctrl->admin_q, only a victim sharing a timer wheel bucket with the freed queue's dangling entry; other runs tripped in enqueue_timer(), __run_timers() or blk_mq_timeout_work(). Failing nvme_alloc_ns() with a debug patch makes it deterministic: one leaked timer trips KASAN within seconds, while 1987 patched releases produced no splat. Stop the timer and the queue work items before blk_mq_exit_queue(), like blk_mq_destroy_queue() does. Found by FuzzNvme.

Affected versions
  • From (including) 5.19.12 - Up to (excluding) 5.20
  • From (including) 6.0 - Up to (excluding) 6.1.184
Show 5 more
  • From (including) 6.0 - Up to (excluding) 6.6.153
  • From (including) 6.0 - Up to (excluding) 6.12.105
  • From (including) 6.0 - Up to (excluding) 6.18.46
  • From (including) 6.0 - Up to (excluding) 7.1.10
  • From (including) 6.0 - Up to (excluding) 7.2
CVE-2026-80588 HIGH (7.5) 2026-08-26 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mptcp: reclaim forward-allocated memory on RX path errors After commit 9db5b3cec4ec ("mptcp: borrow forward memory from subflow"), errors in the receive path prior to queueing skbs into the receive queue do not trigger forward-allocated memory reclaiming. Prevent forward memory from growing unboundedly in pathological drop scenarios by explicitly reclaiming memory when skbs are dropped.

Affected versions
  • From (including) 6.18.35 - Up to (excluding) 6.18.46
  • From (including) 6.19 - Up to (excluding) 7.1.10
Show 1 more
  • From (including) 6.19 - Up to (excluding) 7.2
CVE-2026-80587 CRITICAL (9.8) 2026-08-26 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mptcp: avoid combining some incoming suboptions Some MPTCP suboptions are mutually exclusive according to the RFC8684, but also because in different places, the code doesn't expect some combinations to be present. That's specially true for suboptions that would be present twice, but with different attributes. The new restrictions are the same as the ones applied on the output side, with mptcp_write_options. The same rules can be reused with a small fix: an MP_FASTCLOSE can be used with a DSS when the sender picks this option [1], which is not the case on Linux. Here are the rules: Which options can be used together? X: mutually exclusive O: often used together C: can be used together in some cases P: could be used together but we prefer not to (optimisations) | Opt: | MPC | MPJ | DSS | ADD | RM | PRIO | FAIL | FC | |------|------|------|------|------|------|------|------|------| | MPC |------|------|------|------|------|------|------|------| | MPJ | X |------|------|------|------|------|------|------| | DSS | X | X |------|------|------|------|------|------| | ADD | X | X | P |------|------|------|------|------| | RM | C | C | C | P |------|------|------|------| | PRIO | X | C | C | C | C |------|------|------| | FAIL | X | X | C | X | X | X |------|------| | FC | X | X | P | X | X | X | X |------| | RST | X | X | X | X | X | X | O | O | |------|------|------|------|------|------|------|------|------| The only difference is with the 'P': another stack could send and ADD_ADDR with other suboptions (DSS, RM_ADDR), and this should be allowed. A few points of attention: - In theory, an MP_CAPABLE could be used with a RM_ADDR, but there is no reason to add it with a SYN. Note that even with a 4th ACK, it doesn't seem to be useful, except when IDs are known in advance via another channel. Better not to break that. - Now, combining both an MP_CAPABLE and an MP_JOIN will no longer result to a reject of the two options, but only the second suboption is ignored. That seems OK to do that for this unexpected error. At least now all inconsistent combinations are handled the same way. This could change later in next. This also means the explicit checks for having both MPC + MPJ in subflow.c will now be unreachable. That's fine, they will be removed in a follow-up patch. - In case of conflicting combinations, the extra suboption(s) is/are ignored: having such combinations either means the remote peer is buggy, or is evil. The simplest action is then taken in this case: stop processing the current suboption. - In mp_opt->suboptions, there is also a bit reserved to the checksum, which can be used in an MP_CAPABLE and a DSS. Each time a DSS option can be used in parallel with another option, the checksum can be set, so the verification is combined into a new OPTIONS_MPTCP_DSS macro. - An MP_CAPABLE ACK can carry a Data-Level Length, and an optional Checksum: they are the same as the ones found in a DSS, because a DSS cannot be used in parallel to an MP_CAPABLE. Similarly, even if there is room, a DSS cannot be used with an MP_JOIN.

Affected versions
  • From (including) 5.6 - Up to (excluding) 5.15.218
  • From (including) 5.6 - Up to (excluding) 6.6.153
Show 4 more
  • From (including) 5.6 - Up to (excluding) 6.12.105
  • From (including) 5.6 - Up to (excluding) 6.18.46
  • From (including) 5.6 - Up to (excluding) 7.1.10
  • From (including) 5.6 - Up to (excluding) 7.2
CVE-2026-80586 CRITICAL (9.8) 2026-08-26 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mptcp: options: reset DSS fields in case of unexpected size A remote peer could send a malformed DSS with a wrong size, followed by another DSS or MPC + Data. In this case, the first suboption will be ignored, but leaving some fields written, which could lead to inconsistency or access uninitialized data. Explicitly reset the fields that could have been modified in case of unexpected size.

Affected versions
  • From (including) 5.6 - Up to (excluding) 5.10.266
  • From (including) 5.6 - Up to (excluding) 5.15.217
Show 6 more
  • From (including) 5.6 - Up to (excluding) 6.1.184
  • From (including) 5.6 - Up to (excluding) 6.6.153
  • From (including) 5.6 - Up to (excluding) 6.12.105
  • From (including) 5.6 - Up to (excluding) 6.18.46
  • From (including) 5.6 - Up to (excluding) 7.1.10
  • From (including) 5.6 - Up to (excluding) 7.2
CVE-2026-80585 CRITICAL (9.4) 2026-08-26 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: mptcp: fastopen: only mark MPTFO subflows with SYN data Passive TCP Fast Open accepts a valid-cookie SYN even when it carries no data. In that case the child socket's receive queue is intentionally left empty. mptcp_fastopen_subflow_synack_set_params() set is_mptfo before checking for queued SYN data. That made data-less TFO SYNs hit a WARN and, if the warning was non-fatal, left stale MPTFO state behind. The stale flag could later trigger a state-confusion bug in check_fully_established(). Only mark the subflow as MPTFO after confirming that an SKB was queued. Return quietly when the receive queue is empty. Note that mptcp_subflow_context's is_mptfo field is now not just about subflows where the TFO was present, but about MPTFO subflow that consumed SYN data. Only having a valid cookie but not carrying data is not really "doing TFO".

Affected versions
  • From (including) 6.2 - Up to (excluding) 6.6.153
  • From (including) 6.2 - Up to (excluding) 6.12.105
Show 3 more
  • From (including) 6.2 - Up to (excluding) 6.18.46
  • From (including) 6.2 - Up to (excluding) 7.1.10
  • From (including) 6.2 - Up to (excluding) 7.2
CVE-2026-80584 HIGH (8.4) 2026-08-26 Current versionnot affected

In the Linux kernel, the following vulnerability has been resolved: s390/qeth: validate user buffer length in SNMP and ARP query ioctls qeth_snmp_command() and qeth_l3_arp_query() allocate a buffer sized by a user-supplied length (udata_len) without checking a lower bound, then set udata_offset to a fixed non-zero value and pass both to a reply callback. The callback bounds-checks the copy with if ((udata_len - udata_offset) < len) Both fields are u32, so a udata_len smaller than udata_offset makes the subtraction wrap and the check pass, and the following memcpy() writes past the allocation. A udata_len of 0 also yields ZERO_SIZE_PTR from kzalloc(), which the existing NULL check does not catch. Reject buffers smaller than udata_offset before allocating, so the callback subtraction can no longer underflow.

Affected versions
  • From (including) 2.6.26 - Up to (excluding) 5.10.266
  • From (including) 2.6.26 - Up to (excluding) 5.15.217
Show 6 more
  • From (including) 2.6.26 - Up to (excluding) 6.1.184
  • From (including) 2.6.26 - Up to (excluding) 6.6.153
  • From (including) 2.6.26 - Up to (excluding) 6.12.105
  • From (including) 2.6.26 - Up to (excluding) 6.18.46
  • From (including) 2.6.26 - Up to (excluding) 7.1.10
  • From (including) 2.6.26 - Up to (excluding) 7.2

3569 further matching CVEs are not displayed. The table shows the 100 most relevant of 3669, recently published first.