CVE-2023-53347 in Linux
要約
〜によって VulDB • 2026年07月03日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net/mlx5: uplinkのアンロードAPIを通じてEスイッチのペアリング処理を行う
ユーザーがデバイスをswitchdevモードからレガシーモードに切り替える場合、mlx5はまずEスイッチのペアリングを解除し、その後でuplink vportをアンロードします。一方、ユーザーがデバイスの削除またはリロードを行う場合、mlx5はまずuplink vportをアンロードし、その後にEスイッチのペアリングを解除します。
後者のケースではバグ[1]が発生するため、uplinkのun/load APIの一部としてEスイッチのペアリング処理を行います。
[1]
VF_LAGが使用されている場合、すべてのtc fdbフローはピアeswに複製されます。しかし、元のeswはこの複製されたフローへのポインタを保持しており、これはピアeswではなく元のeswです。 例:ユーザーがesw0上でtc fdbフローを作成すると、FW/HWではesw1にもフローが複製されますが、SWレベルではesw0がその複製されたフローへのポインタを保持します。 モジュールアンロード中にピアのtc fdbフローがまだオフロードされている場合、最初に削除されるデバイスがピアデバイス(上記例ではesw1)であるとき、ピアnet-devは破棄され、それによりmlx5e_privの内容が0で埋められます(memset to 0)。
その後、ピアデバイスは元のデバイス(上記例ではesw0)とのペアリング解除を試みます。ペアリング解除APIは、元のデバイスに対してそのeswitchからピアフローをクリアするよう呼び出しますが、元のeswitch(esw0)に格納されているピアフローが、すでに0で埋められているピアのmlx5e_privを使用しようとし、以下のカーネルoopsを引き起こします。
[ 157.9
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.