<?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 13:41:48 +0000</lastBuildDate>
    <item>
      <title>CVE-2022-50002 — net/mlx5: LAG, fix logic over MLX5_LAG_FLAG_NDEVS_READY</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2022-50002</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;net/mlx5: LAG, fix logic over MLX5_LAG_FLAG_NDEVS_READY&lt;/p&gt;
&lt;p&gt;Only set MLX5_LAG_FLAG_NDEVS_READY if both netdevices are registered.
Doing so guarantees that both ldev-&amp;gt;pf[MLX5_LAG_P0].dev and
ldev-&amp;gt;pf[MLX5_LAG_P1].dev have valid pointers when
MLX5_LAG_FLAG_NDEVS_READY is set.&lt;/p&gt;
&lt;p&gt;The core issue is asymmetry in setting MLX5_LAG_FLAG_NDEVS_READY and
clearing it. Setting it is done wrongly when both
ldev-&amp;gt;pf[MLX5_LAG_P0].dev and ldev-&amp;gt;pf[MLX5_LAG_P1].dev are set;
clearing it is done right when either of ldev-&amp;gt;pf[i].netdev is cleared.&lt;/p&gt;
&lt;p&gt;Consider the following scenario:
1. PF0 loads and sets ldev-&amp;gt;pf[MLX5_LAG_P0].dev to a valid pointer
2. PF1 loads and sets both ldev-&amp;gt;pf[MLX5_LAG_P1].dev and
   ldev-&amp;gt;pf[MLX5_LAG_P1].netdev with valid pointers. This results in
   MLX5_LAG_FLAG_NDEVS_READY is set.
3. PF0 is unloaded before setting dev-&amp;gt;pf[MLX5_LAG_P0].netdev.
   MLX5_LAG_FLAG_NDEVS_READY remains set.&lt;/p&gt;
&lt;p&gt;Further execution of mlx5_do_bond() will result in null pointer
dereference when calling mlx5_lag_is_multipath()&lt;/p&gt;
&lt;p&gt;This patch fixes the following call trace actually encountered:&lt;/p&gt;
&lt;p&gt;[ 1293.475195] BUG: kernel NULL pointer dereference, address: 00000000000009a8
[ 1293.478756] #PF: supervisor read access in kernel mode
[ 1293.481320] #PF: error_code(0x0000) - not-present page
[ 1293.483686] PGD 0 P4D 0
[ 1293.484434] Oops: 0000 [#1] SMP PTI
[ 1293.485377] CPU: 1 PID: 23690 Comm: kworker/u16:2 Not tainted 5.18.0-rc5_for_upstream_mi…&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;net/mlx5: LAG, fix logic over MLX5_LAG_FLAG_NDEVS_READY&lt;/p&gt;
&lt;p&gt;Only set MLX5_LAG_FLAG_NDEVS_READY if both netdevices are registered.
Doing so guarantees that both ldev-&amp;gt;pf[MLX5_LAG_P0].dev and
ldev-&amp;gt;pf[MLX5_LAG_P1].dev have valid pointers when
MLX5_LAG_FLAG_NDEVS_READY is set.&lt;/p&gt;
&lt;p&gt;The core issue is asymmetry in setting MLX5_LAG_FLAG_NDEVS_READY and
clearing it. Setting it is done wrongly when both
ldev-&amp;gt;pf[MLX5_LAG_P0].dev and ldev-&amp;gt;pf[MLX5_LAG_P1].dev are set;
clearing it is done right when either of ldev-&amp;gt;pf[i].netdev is cleared.&lt;/p&gt;
&lt;p&gt;Consider the following scenario:
1. PF0 loads and sets ldev-&amp;gt;pf[MLX5_LAG_P0].dev to a valid pointer
2. PF1 loads and sets both ldev-&amp;gt;pf[MLX5_LAG_P1].dev and
   ldev-&amp;gt;pf[MLX5_LAG_P1].netdev with valid pointers. This results in
   MLX5_LAG_FLAG_NDEVS_READY is set.
3. PF0 is unloaded before setting dev-&amp;gt;pf[MLX5_LAG_P0].netdev.
   MLX5_LAG_FLAG_NDEVS_READY remains set.&lt;/p&gt;
&lt;p&gt;Further execution of mlx5_do_bond() will result in null pointer
dereference when calling mlx5_lag_is_multipath()&lt;/p&gt;
&lt;p&gt;This patch fixes the following call trace actually encountered:&lt;/p&gt;
&lt;p&gt;[ 1293.475195] BUG: kernel NULL pointer dereference, address: 00000000000009a8
[ 1293.478756] #PF: supervisor read access in kernel mode
[ 1293.481320] #PF: error_code(0x0000) - not-present page
[ 1293.483686] PGD 0 P4D 0
[ 1293.484434] Oops: 0000 [#1] SMP PTI
[ 1293.485377] CPU: 1 PID: 23690 Comm: kworker/u16:2 Not tainted 5.18.0-rc5_for_upstream_mi…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2022-50002</guid>
    </item>
  </channel>
</rss>
