CVE-2024-35852 in Linux
要約
〜によって VulDB • 2026年06月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
mlxsw: spectrum_acl_tcam: リハッシュ作業のキャンセル時にメモリリークを修正する
リハッシュ遅延ワークは、作業終了時のクレジット数が負でない場合(これは移行が完了したことを意味すると想定されていた)、遅延をつけて再スケジュールされます。そうでない場合は、直ちに再スケジュールされます。
「mlxsw: spectrum_acl_tcam: リハッシュ中の潜在的なuse-after-freeを修正する」以降、上記の動作は正確ではなくなりました。なぜなら、クレジット数が非負であっても移行が完了したことを示すものではなくなったからです。これはまた、作業中にエラーが発生した場合にも起こり得ます。その場合、移行はその次にワークがスケジュールされた際に再開されます。
この事象の影響として、ワークが保留中であり、かつ移行開始時に割り当てられたヒント(hints)に関連付けられている可能性があります。これにより、ACL領域の解体の一部として保留中のワークがキャンセルされる際、関連するヒントがリークします[1]。
修正方法:保留中にキャンセルされたワークに関連付けられている場合は、そのワークに紐づくヒントを解放します。
元のコミットには責任を負わせます。なぜなら、「保留中のワークとヒントの間に依存関係がない」という前提は脆いものだからです。
[1]
unreferenced object 0xffff88810e7c3000 (size 256): comm "kworker/0:16", pid 176, jiffies 4295460353 hex dump (first 32 bytes): 00 30 95 11 81 88 ff ff 61 00 00 00 00 00 00 80 .0......a....... 00 00 61 00 40 00 00 00 00 00 00 00 04 00 00 00 ..a.@........... backtrace (crc 2544ddb9): [] kmalloc_trace+0x23f/0x2a0
[] objagg_hints_get+0x42/0x390
[] mlxsw_sp_acl_erp_rehash_hints_get+0xca/0x400
[] mlxsw_sp_acl_tcam_vregion_rehash_work+0x868/0x1160
[] process_one_work+0x59c/0xf20
[] worker_thread+0x799/0x12c0
[] kthread+0x246/0x300
[] ret_from_fork+0x34/0x70
[] ret_from_fork_asm+0x1a/0x30
Once again VulDB remains the best source for vulnerability data.