<?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>Sun, 04 Oct 2026 09:19:07 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64457 — virtio_pci: fix vq info pointer lookup via wrong index</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64457</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;virtio_pci: fix vq info pointer lookup via wrong index&lt;/p&gt;
&lt;p&gt;Unbinding a virtio balloon device:&lt;/p&gt;
&lt;p&gt;echo virtio0 &amp;gt; /sys/bus/virtio/drivers/virtio_balloon/unbind&lt;/p&gt;
&lt;p&gt;triggers a NULL pointer dereference. The dmesg says:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 0000000000000008
    [...]
    RIP: 0010:__list_del_entry_valid_or_report+0x5/0xf0
    Call Trace:
    &amp;lt;TASK&amp;gt;
    vp_del_vqs+0x121/0x230
    remove_common+0x135/0x150
    virtballoon_remove+0xee/0x100
    virtio_dev_remove+0x3b/0x80
    device_release_driver_internal+0x187/0x2c0
    unbind_store+0xb9/0xe0
    kernfs_fop_write_iter.llvm.11660790530567441834+0xf6/0x180
    vfs_write+0x2a9/0x3b0
    ksys_write+0x5c/0xd0
    do_syscall_64+0x54/0x230
    entry_SYSCALL_64_after_hwframe+0x29/0x31
    [...]
    &amp;lt;/TASK&amp;gt;&lt;/p&gt;
&lt;p&gt;The virtio_balloon device registers 5 queues (inflate, deflate, stats,
free_page, reporting) but only the first two are unconditional. The
stats, free_page and reporting queues are each conditional on their
respective feature bits. When any of these features are absent, the
corresponding vqs_info entry has name == NULL, creating holes in the
array.&lt;/p&gt;
&lt;p&gt;The root cause is an indexing mismatch introduced when vq info storage
was changed to be passed as an argument. vp_find_vqs_msix() and
vp_find_vqs_intx() store the info pointer at vp_dev-&amp;gt;vqs[i], where &amp;#39;i&amp;#39;
is the caller&amp;#39;s sparse array index. However, the virtqueue itself gets
vq-&amp;gt;index assigned f…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;virtio_pci: fix vq info pointer lookup via wrong index&lt;/p&gt;
&lt;p&gt;Unbinding a virtio balloon device:&lt;/p&gt;
&lt;p&gt;echo virtio0 &amp;gt; /sys/bus/virtio/drivers/virtio_balloon/unbind&lt;/p&gt;
&lt;p&gt;triggers a NULL pointer dereference. The dmesg says:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 0000000000000008
    [...]
    RIP: 0010:__list_del_entry_valid_or_report+0x5/0xf0
    Call Trace:
    &amp;lt;TASK&amp;gt;
    vp_del_vqs+0x121/0x230
    remove_common+0x135/0x150
    virtballoon_remove+0xee/0x100
    virtio_dev_remove+0x3b/0x80
    device_release_driver_internal+0x187/0x2c0
    unbind_store+0xb9/0xe0
    kernfs_fop_write_iter.llvm.11660790530567441834+0xf6/0x180
    vfs_write+0x2a9/0x3b0
    ksys_write+0x5c/0xd0
    do_syscall_64+0x54/0x230
    entry_SYSCALL_64_after_hwframe+0x29/0x31
    [...]
    &amp;lt;/TASK&amp;gt;&lt;/p&gt;
&lt;p&gt;The virtio_balloon device registers 5 queues (inflate, deflate, stats,
free_page, reporting) but only the first two are unconditional. The
stats, free_page and reporting queues are each conditional on their
respective feature bits. When any of these features are absent, the
corresponding vqs_info entry has name == NULL, creating holes in the
array.&lt;/p&gt;
&lt;p&gt;The root cause is an indexing mismatch introduced when vq info storage
was changed to be passed as an argument. vp_find_vqs_msix() and
vp_find_vqs_intx() store the info pointer at vp_dev-&amp;gt;vqs[i], where &amp;#39;i&amp;#39;
is the caller&amp;#39;s sparse array index. However, the virtqueue itself gets
vq-&amp;gt;index assigned f…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64457</guid>
    </item>
  </channel>
</rss>
