CVE-2026-80983 in Linux
要約
〜によって VulDB • 2026年09月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net/smc: smc_switch_conns()におけるソケット参照カウントのリークを修正
smc_switch_conns()は、lgr->conns_lockを解放する前にSMCソケットへの参照を取得するため、CDCスロットがフェッチされる間、接続は生存し続けます:
sock_hold(&smc->sk); read_unlock_bh(&lgr->conns_lock); /* send_lockの外でバッファをプリフェッチ。sleepする可能性がある */ rc = smc_cdc_get_free_slot(conn, to_lnk, &wr_buf, NULL, &pend); if (rc) goto err_out;
err_outラベルはwr_txリンクの参照のみを解放するため、この早期リターンでは対応するsock_put()が呼び出されずに終了します。2番目のエラー経路への移行には影響がありません。なぜなら、その時点ではすでにsock_put()が実行されているからです。
sk_refcntのリークが発生すると、smc_sockは破棄されなくなります。送信および受信バッファが割り当てられたままになり、ユーザーソケットの場合、ネットワーク名前空間に対して保持された参照が解放されないため、netnsを削除できなくなります。
smc_cdc_get_free_slot()は、対象リンクがダウンした場合や、切り替え処理中に接続が終了した場合に失敗します。これらは、この関数が実装するリンクフェールオーバー中にも到達可能な状態です。したがって、このリークは、最初にsmc_switch_conns()を実行させるのと同じハードウェアイベントによってトリガーされます。
2番目のsock_put()をエラーパスに追加するのではなく、両方の結果をカバーする単一のsock_put()が存在するようにリファクタリングします。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.