Read the docs
TI-2024-23680 Aliases CVE-2024-35814GHSA-rqvp-j9p2-fcwx

swiotlb: Fix double-allocation of slots due to broken alignment handling

Priority LOW 38CWE-1055Published · Updated

Key facts

Attack vector
Local
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Code execution
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · NVD. Fix status from CNA and Red Hat. Impact type from CWE-119 and the CVSS impact.

Summary

In the Linux kernel, the following vulnerability has been resolved: swiotlb: Fix double-allocation of slots due to broken alignment handling Commit bbb73a103fbb ("swiotlb: fix a braino in the alignment check fix"), which was a fix for commit 0eee5ae10256 ("swiotlb: fix slot alignment checks"), causes a functional regression with vsock in a virtual machine using bouncing via a restricted DMA SWIOTLB pool. When virtio allocates the virtqueues for the vsock device using dma_alloc_coherent(), the SWIOTLB search can return page-unaligned allocations if 'area->index' was left unaligned by a previous allocation from the buffer: # Final address in brackets is the SWIOTLB address returned to the caller | virtio-pci 0000:00:07.0: orig_addr 0x0 alloc_size 0x2000, iotlb_align_mask 0x800 stride 0x2: got slot 1645-1649/7168 (0x98326800) | virtio-pci 0000:00:07.0: orig_addr 0x0 alloc_size 0x2000, iotlb_align_mask 0x800 stride 0x2: got slot 1649-1653/7168 (0x98328800) | virtio-pci 0000:00:07.0: orig_addr 0x0 alloc_size 0x2000, iotlb_align_mask 0x800 stride 0x2: got slot 1653-1657/7168 (0x9832a800) This ends badly (typically buffer corruption and/or a hang) because swiotlb_alloc() is expecting a page-aligned allocation and so blindly returns a pointer to the 'struct page' corresponding to the allocation, therefore double-allocating the first half (2KiB slot) of the 4KiB page. Fix the problem by treating the allocation alignment separately to any additional alignment requirements from the device, using the maximum of the two as the stride to search the buffer slots and taking care to ensure a minimum of page-alignment for buffers larger than a page. This also resolves swiotlb allocation failures occuring due to the inclusion of ~PAGE_MASK in 'iotlb_align_mask' for large allocations and resulting in alignment requirements exceeding swiotlb_max_mapping_size().

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00236 14th percentileScored 2026-11-07
Fix Fixed Linux (Linux): 6.6.24, 6.7.12, 6.8.3 +1Red Hat: 4 advisories

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
LinuxLinux6.3 and later6.6.24, 6.7.12, 6.8.3, 6.9Patch availableCNA
  • Linux VendorLinux Affected 6.3 and later Fixed in 6.6.24, 6.7.12, 6.8.3, 6.9 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*6.3 to before 6.6.24; 6.7 to before 6.7.12; 6.8 to before 6.8.3VulnerableLinux
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions 6.3 to before 6.6.24; 6.7 to before 6.7.12; 6.8 to before 6.8.3 Vulnerable ·Linux

Remediation

  • Fix · CNA Linux (Linux) Fixed in 6.6.24, 6.7.12, 6.8.3, 6.9

Red Hat 4 advisories

  • RHSA-2024:9546 Released 2024-11-13 · Red Hat rating Moderate
    kernel security update
    • Red Hat CodeReady Linux Builder EUS (v.9.4) kernel-tools-libs-devel-5.14.0-427.44.1.el9_4, libperf-5.14.0-427.44.1.el9_4
    • Red Hat Enterprise Linux AppStream EUS (v.9.4) kernel-64k-debug-devel-5.14.0-427.44.1.el9_4, kernel-64k-debug-devel-matched-5.14.0-427.44.1.el9_4, kernel-64k-devel-5.14.0-427.44.1.el9_4 +11
    • Red Hat Enterprise Linux BaseOS EUS (v.9.4) bpftool-7.3.0-427.44.1.el9_4, kernel-5.14.0-427.44.1.el9_4, kernel-64k-5.14.0-427.44.1.el9_4 +29
    • Red Hat Enterprise Linux Real Time EUS (v.9.4) kernel-rt-5.14.0-427.44.1.el9_4, kernel-rt-core-5.14.0-427.44.1.el9_4, kernel-rt-debug-5.14.0-427.44.1.el9_4 +9
    • Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4) kernel-rt-5.14.0-427.44.1.el9_4, kernel-rt-core-5.14.0-427.44.1.el9_4, kernel-rt-debug-5.14.0-427.44.1.el9_4 +11
  • RHSA-2024:9315 Released 2024-11-12 · Red Hat rating Moderate
    kernel security update
    • Red Hat CodeReady Linux Builder (v. 9) kernel-cross-headers-5.14.0-503.11.1.el9_5, kernel-tools-libs-devel-5.14.0-503.11.1.el9_5, libperf-5.14.0-503.11.1.el9_5
    • Red Hat Enterprise Linux AppStream (v. 9) kernel-64k-debug-devel-5.14.0-503.11.1.el9_5, kernel-64k-debug-devel-matched-5.14.0-503.11.1.el9_5, kernel-64k-devel-5.14.0-503.11.1.el9_5 +12
    • Red Hat Enterprise Linux BaseOS (v. 9) bpftool-7.4.0-503.11.1.el9_5, kernel-5.14.0-503.11.1.el9_5, kernel-64k-5.14.0-503.11.1.el9_5 +30
    • Red Hat Enterprise Linux Real Time (v. 9) kernel-rt-5.14.0-503.11.1.el9_5, kernel-rt-core-5.14.0-503.11.1.el9_5, kernel-rt-debug-5.14.0-503.11.1.el9_5 +9
    • Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt-5.14.0-503.11.1.el9_5, kernel-rt-core-5.14.0-503.11.1.el9_5, kernel-rt-debug-5.14.0-503.11.1.el9_5 +11
  • RHSA-2024:5101 Released 2024-08-08 · Red Hat rating Important
    kernel security update
    • Red Hat Enterprise Linux BaseOS (v. 8) bpftool-4.18.0-553.16.1.el8_10, kernel-4.18.0-553.16.1.el8_10, kernel-abi-stablelists-4.18.0-553.16.1.el8_10 +19
    • Red Hat Enterprise Linux CRB (v. 8) kernel-tools-libs-devel-4.18.0-553.16.1.el8_10
Show 1 more Red Hat advisories
  • RHSA-2024:5102 Released 2024-08-08 · Red Hat rating Important
    kernel-rt security update
    • Red Hat Enterprise Linux NFV (v. 8) kernel-rt-4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core-4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-4.18.0-553.16.1.rt7.357.el8_10 +9
    • Red Hat Enterprise Linux RT (v. 8) kernel-rt-4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core-4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-4.18.0-553.16.1.rt7.357.el8_10 +7

Vendor assessments

Red Hat

Red Hat rating: Low. Red Hat's page for this CVE →

ProductStatusPlan or fix
Red Hat CodeReady Linux Builder (v. 9)Fixed RHSA-2024:9315
Red Hat CodeReady Linux Builder EUS (v.9.4)Fixed RHSA-2024:9546
Red Hat Enterprise Linux AppStream (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux AppStream EUS (v.9.4)Fixed RHSA-2024:9546
Red Hat Enterprise Linux BaseOS (v. 8)Fixed RHSA-2024:5101
Red Hat Enterprise Linux BaseOS (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux BaseOS EUS (v.9.4)Fixed RHSA-2024:9546
Red Hat Enterprise Linux CRB (v. 8)Fixed RHSA-2024:5101
Red Hat Enterprise Linux NFV (v. 8)Fixed RHSA-2024:5102
Red Hat Enterprise Linux RT (v. 8)Fixed RHSA-2024:5102
Red Hat Enterprise Linux Real Time (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux Real Time EUS (v.9.4)Fixed RHSA-2024:9546
Red Hat Enterprise Linux Real Time for NFV (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4)Fixed RHSA-2024:9546
Not affected: 4 products
  • Red Hat CodeReady Linux Builder (v. 9)
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux AppStream (v. 9)

Timeline

  1. 2026-10-02 Threatist record created from CVE-2024-35814
  2. 2026-10-03 Alias added: GHSA-rqvp-j9p2-fcwx
  3. 2026-10-29 Affected versions changed · Red Hat

References

  • TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
  • TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
  • TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
  • TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
  • TI-2021-05514 Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACE KEVCVSS 3.1HIGH 8.3
See all 15278 →

Sources