<?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 21:30:30 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64318 — partitions: aix: bound the pp_count scan to the ppe array</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64318</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;partitions: aix: bound the pp_count scan to the ppe array&lt;/p&gt;
&lt;p&gt;aix_partition() reads the physical volume descriptor into a fixed-size
struct pvd and then scans its physical-partition-extent array:&lt;/p&gt;
&lt;p&gt;int numpps = be16_to_cpu(pvd-&amp;gt;pp_count);
	...
	for (i = 0; i &amp;lt; numpps; i += 1) {
		struct ppe *p = pvd-&amp;gt;ppe + i;
		...
		lp_ix = be16_to_cpu(p-&amp;gt;lp_ix);&lt;/p&gt;
&lt;p&gt;pvd points at a single kmalloc()&amp;#39;d struct pvd whose ppe[] member holds a
fixed ARRAY_SIZE(pvd-&amp;gt;ppe) (1016) entries, but the loop runs up to the
on-disk pp_count.  pp_count is an unvalidated __be16 read straight from
the descriptor, so a crafted AIX image with pp_count larger than 1016
drives the loop to read pvd-&amp;gt;ppe[i] past the end of the allocation (up
to 65535 entries, ~2 MB out of bounds).&lt;/p&gt;
&lt;p&gt;The partition scan runs without mounting anything, when a block device
with a crafted AIX/IBM partition table appears (an attacker-supplied
image attached with losetup -P, or a device auto-scanned by udev), via
msdos_partition() -&amp;gt; aix_partition().&lt;/p&gt;
&lt;p&gt;Clamp the scan to the number of entries the ppe[] array can hold.&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;partitions: aix: bound the pp_count scan to the ppe array&lt;/p&gt;
&lt;p&gt;aix_partition() reads the physical volume descriptor into a fixed-size
struct pvd and then scans its physical-partition-extent array:&lt;/p&gt;
&lt;p&gt;int numpps = be16_to_cpu(pvd-&amp;gt;pp_count);
	...
	for (i = 0; i &amp;lt; numpps; i += 1) {
		struct ppe *p = pvd-&amp;gt;ppe + i;
		...
		lp_ix = be16_to_cpu(p-&amp;gt;lp_ix);&lt;/p&gt;
&lt;p&gt;pvd points at a single kmalloc()&amp;#39;d struct pvd whose ppe[] member holds a
fixed ARRAY_SIZE(pvd-&amp;gt;ppe) (1016) entries, but the loop runs up to the
on-disk pp_count.  pp_count is an unvalidated __be16 read straight from
the descriptor, so a crafted AIX image with pp_count larger than 1016
drives the loop to read pvd-&amp;gt;ppe[i] past the end of the allocation (up
to 65535 entries, ~2 MB out of bounds).&lt;/p&gt;
&lt;p&gt;The partition scan runs without mounting anything, when a block device
with a crafted AIX/IBM partition table appears (an attacker-supplied
image attached with losetup -P, or a device auto-scanned by udev), via
msdos_partition() -&amp;gt; aix_partition().&lt;/p&gt;
&lt;p&gt;Clamp the scan to the number of entries the ppe[] array can hold.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64318</guid>
    </item>
  </channel>
</rss>
