製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける型の取り違えに関する脆弱性
Title LinuxのLinux Kernelにおける型の取り違えに関する脆弱性
Summary

Linuxカーネルにおいて、teamにおける非イーサネットポートに対するheader_opsタイプ混同の脆弱性が修正されました。コミット950803f72547("bonding: fix type confusion in bond_setup_by_slave()")と同様に、teamにも同種のheader_opsタイプ混同が存在していました。非イーサネットポートの場合、team_setup_by_port()はport_dev-header_opsを直接コピーします。teamデバイスが後にdev_hard_header()やdev_parse_header()を呼び出すと、これらのコールバックは本来の下位デバイスではなくteamのnet_device上で実行されるため、netdev_priv(dev)が誤ったプライベートタイプとして解釈され、クラッシュが発生する可能性がありました。syzbotのレポートはbond_header_create()でのクラッシュを示していますが、その根本原因はteamにありました。トポロジはgre - bond - teamであり、teamは継承されたheader_opsを下位デバイスではなく自身のnet_device上で呼び出します。そのため、bond_header_create()はteamデバイスを受け取り、netdev_priv()をbondingのプライベートデータとして誤認し、タイプ混同によるクラッシュを引き起こしていました。これを修正するために、createおよびparse用のteam header_opsラッパーを導入し、RCU下でteamポートを選択して下位デバイスのコールバックをport-devで呼び出し、各コールバックが常に正しいnet_deviceコンテキストを参照するようにしました。また、選択された下位デバイスを下位のparseコールバックに渡すことで、非イーサネット積層トポロジにおける再帰を制限し、parseコールバックが常に正しいデバイスコンテキストで実行されるようにしています。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date April 22, 2026, midnight
Registration Date April 30, 2026, 12:15 p.m.
Last Update April 30, 2026, 12:15 p.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 3.7
Linux Kernel 3.7.1 以上 6.12.80 未満
Linux Kernel 6.13 以上 6.18.21 未満
Linux Kernel 6.19 以上 6.19.11 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月30日]
  掲載
April 30, 2026, 12:15 p.m.

NVD Vulnerability Information
CVE-2026-31502
Summary

In the Linux kernel, the following vulnerability has been resolved:

team: fix header_ops type confusion with non-Ethernet ports

Similar to commit 950803f72547 ("bonding: fix type confusion in
bond_setup_by_slave()") team has the same class of header_ops type
confusion.

For non-Ethernet ports, team_setup_by_port() copies port_dev->header_ops
directly. When the team device later calls dev_hard_header() or
dev_parse_header(), these callbacks can run with the team net_device
instead of the real lower device, so netdev_priv(dev) is interpreted as
the wrong private type and can crash.

The syzbot report shows a crash in bond_header_create(), but the root
cause is in team: the topology is gre -> bond -> team, and team calls
the inherited header_ops with its own net_device instead of the lower
device, so bond_header_create() receives a team device and interprets
netdev_priv() as bonding private data, causing a type confusion crash.

Fix this by introducing team header_ops wrappers for create/parse,
selecting a team port under RCU, and calling the lower device callbacks
with port->dev, so each callback always sees the correct net_device
context.

Also pass the selected lower device to the lower parse callback, so
recursion is bounded in stacked non-Ethernet topologies and parse
callbacks always run with the correct device context.

Publication Date April 22, 2026, 11:16 p.m.
Registration Date April 25, 2026, 4:05 a.m.
Last Update April 28, 2026, 11:47 p.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.7.1 6.12.80
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.21
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.11
cpe:2.3:o:linux:linux_kernel:3.7:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List