<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 30 Sep 2026 01:28:04 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-35814 — swiotlb: Fix double-allocation of slots due to broken alignment handling</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-35814</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, linux_kernel&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;swiotlb: Fix double-allocation of slots due to broken alignment handling&lt;/p&gt;
&lt;p&gt;Commit bbb73a103fbb (&amp;#34;swiotlb: fix a braino in the alignment check fix&amp;#34;),
which was a fix for commit 0eee5ae10256 (&amp;#34;swiotlb: fix slot alignment
checks&amp;#34;), causes a functional regression with vsock in a virtual machine
using bouncing via a restricted DMA SWIOTLB pool.&lt;/p&gt;
&lt;p&gt;When virtio allocates the virtqueues for the vsock device using
dma_alloc_coherent(), the SWIOTLB search can return page-unaligned
allocations if &amp;#39;area-&amp;gt;index&amp;#39; was left unaligned by a previous allocation
from the buffer:&lt;/p&gt;
&lt;p&gt;# 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)&lt;/p&gt;
&lt;p&gt;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 &amp;#39;struct page&amp;#39; corresponding to the allocation,
therefore double-allocating the first half (2KiB slot) of the 4KiB page.&lt;/p&gt;
&lt;p&gt;Fix the problem by treating the allocation alignment separately to any
additional alignment requirements fr…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, linux_kernel&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;swiotlb: Fix double-allocation of slots due to broken alignment handling&lt;/p&gt;
&lt;p&gt;Commit bbb73a103fbb (&amp;#34;swiotlb: fix a braino in the alignment check fix&amp;#34;),
which was a fix for commit 0eee5ae10256 (&amp;#34;swiotlb: fix slot alignment
checks&amp;#34;), causes a functional regression with vsock in a virtual machine
using bouncing via a restricted DMA SWIOTLB pool.&lt;/p&gt;
&lt;p&gt;When virtio allocates the virtqueues for the vsock device using
dma_alloc_coherent(), the SWIOTLB search can return page-unaligned
allocations if &amp;#39;area-&amp;gt;index&amp;#39; was left unaligned by a previous allocation
from the buffer:&lt;/p&gt;
&lt;p&gt;# 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)&lt;/p&gt;
&lt;p&gt;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 &amp;#39;struct page&amp;#39; corresponding to the allocation,
therefore double-allocating the first half (2KiB slot) of the 4KiB page.&lt;/p&gt;
&lt;p&gt;Fix the problem by treating the allocation alignment separately to any
additional alignment requirements fr…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-35814</guid>
    </item>
  </channel>
</rss>
