<?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>Tue, 29 Sep 2026 01:37:28 +0000</lastBuildDate>
    <item>
      <title>CVE-2023-52910 — iommu/iova: Fix alloc iova overflows issue</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2023-52910</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;iommu/iova: Fix alloc iova overflows issue&lt;/p&gt;
&lt;p&gt;In __alloc_and_insert_iova_range, there is an issue that retry_pfn
overflows. The value of iovad-&amp;gt;anchor.pfn_hi is ~0UL, then when
iovad-&amp;gt;cached_node is iovad-&amp;gt;anchor, curr_iova-&amp;gt;pfn_hi + 1 will
overflow. As a result, if the retry logic is executed, low_pfn is
updated to 0, and then new_pfn &amp;lt; low_pfn returns false to make the
allocation successful.&lt;/p&gt;
&lt;p&gt;This issue occurs in the following two situations:
1. The first iova size exceeds the domain size. When initializing
iova domain, iovad-&amp;gt;cached_node is assigned as iovad-&amp;gt;anchor. For
example, the iova domain size is 10M, start_pfn is 0x1_F000_0000,
and the iova size allocated for the first time is 11M. The
following is the log information, new-&amp;gt;pfn_lo is smaller than
iovad-&amp;gt;cached_node.&lt;/p&gt;
&lt;p&gt;Example log as follows:
[  223.798112][T1705487] sh: [name:iova&amp;amp;]__alloc_and_insert_iova_range
start_pfn:0x1f0000,retry_pfn:0x0,size:0xb00,limit_pfn:0x1f0a00
[  223.799590][T1705487] sh: [name:iova&amp;amp;]__alloc_and_insert_iova_range
success start_pfn:0x1f0000,new-&amp;gt;pfn_lo:0x1efe00,new-&amp;gt;pfn_hi:0x1f08ff&lt;/p&gt;
&lt;p&gt;2. The node with the largest iova-&amp;gt;pfn_lo value in the iova domain
is deleted, iovad-&amp;gt;cached_node will be updated to iovad-&amp;gt;anchor,
and then the alloc iova size exceeds the maximum iova size that can
be allocated in the domain.&lt;/p&gt;
&lt;p&gt;After judging that retry_pfn is less than limit_pfn, call retry_pfn+1
to fix the overflow issue.&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;iommu/iova: Fix alloc iova overflows issue&lt;/p&gt;
&lt;p&gt;In __alloc_and_insert_iova_range, there is an issue that retry_pfn
overflows. The value of iovad-&amp;gt;anchor.pfn_hi is ~0UL, then when
iovad-&amp;gt;cached_node is iovad-&amp;gt;anchor, curr_iova-&amp;gt;pfn_hi + 1 will
overflow. As a result, if the retry logic is executed, low_pfn is
updated to 0, and then new_pfn &amp;lt; low_pfn returns false to make the
allocation successful.&lt;/p&gt;
&lt;p&gt;This issue occurs in the following two situations:
1. The first iova size exceeds the domain size. When initializing
iova domain, iovad-&amp;gt;cached_node is assigned as iovad-&amp;gt;anchor. For
example, the iova domain size is 10M, start_pfn is 0x1_F000_0000,
and the iova size allocated for the first time is 11M. The
following is the log information, new-&amp;gt;pfn_lo is smaller than
iovad-&amp;gt;cached_node.&lt;/p&gt;
&lt;p&gt;Example log as follows:
[  223.798112][T1705487] sh: [name:iova&amp;amp;]__alloc_and_insert_iova_range
start_pfn:0x1f0000,retry_pfn:0x0,size:0xb00,limit_pfn:0x1f0a00
[  223.799590][T1705487] sh: [name:iova&amp;amp;]__alloc_and_insert_iova_range
success start_pfn:0x1f0000,new-&amp;gt;pfn_lo:0x1efe00,new-&amp;gt;pfn_hi:0x1f08ff&lt;/p&gt;
&lt;p&gt;2. The node with the largest iova-&amp;gt;pfn_lo value in the iova domain
is deleted, iovad-&amp;gt;cached_node will be updated to iovad-&amp;gt;anchor,
and then the alloc iova size exceeds the maximum iova size that can
be allocated in the domain.&lt;/p&gt;
&lt;p&gt;After judging that retry_pfn is less than limit_pfn, call retry_pfn+1
to fix the overflow issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2023-52910</guid>
    </item>
  </channel>
</rss>
