Linuxカーネルにおいて、以下の脆弱性が修正されました。netfilterのnft_set_pipapoに関して、ガベージコレクションをunlinkフェーズとreclaimフェーズに分割しました。Yiming QianがpipapoセットタイプにおけるUse-after-freeの脆弱性を報告しています。多数の期限切れ要素が存在する場合、コミット時のGCが非プリエンプティブルなコンテキストで非常に長時間実行され、ソフトロックアップ警告やRCUスタールレポート(ローカルサービス拒否)を引き起こす可能性があります。そのため、GCをunlinkフェーズとreclaimフェーズに分割する必要があります。ポインタがスワップされるまで、要素の解放をキューに入れることはできません。期限切れ要素は、データ構造のライブコピーを介してパケットパスおよびユーザースペースのダンプ操作の両方から依然としてアクセス可能です。call_rcu()は保護にならず、call_rcuが発火した後に開始されたダンプ操作や要素の検索は、コミットフェーズがクローンとライブポインタのスワップを行うまで、解放された要素を観察する可能性があります。これは、最近のrbtreeバックエンドのコミット35f83a75529a("netfilter: nft_set_rbtree: don't gc elements on insert")で採用されたアプローチと類似しています。