JVNDB-2026-023156 | |
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。net/sched: act_ctにおいて、ct_ftを解放した後にのみRCU読み取りロックを解除するべきところを、act_ctのフローテーブルをtcf_ct_flow_table_get()で検索する際に、rhashtable_lookup_fast()が内部的にRCU読み取りクリティカルセクションを開閉し、その後ct_ftを返します。tcf_ct_flow_table_cleanup_work()は、返されたct_ftに対してrefcount_inc_not_zero()が呼ばれる前に完了することがあり、既に解放されたct_ftオブジェクトに対するUse-After-Free(UAF)が発生します。この脆弱性は権限昇格につながる可能性があります。zdi-disclosures@trendmicro.comによる解析によれば、act_ctの初期化時にtcf_ct_init()が呼ばれ、その内部でtcf_ct_flow_table_get()がトリガーされます。rhashtable_lookup_fast()は、[1]の箇所でzones_htから対応するct_ftをRCU読み取りロック(rcu_read_lock()/rcu_read_unlock())で保護された状態で検索して返します。このRCUロックはオブジェクトの解放を防ぎますが、関数の戻り時点でrcu_read_unlock()がすでに呼ばれており、[2]のrefcount_inc_not_zero(&ct_ft->ref)が呼ばれるまでにct_ftが解放されてしまうことを防止できません。この期間がレースウィンドウとなり、ct_ftが解放されうる状態が発生します。解放処理はtcf_ct_cleanup()を経由し、call_rcu() -> tcf_ct_params_free_rcu() -> tcf_ct_params_free() -> tcf_ct_flow_table_put()が実行されます。tcf_ct_flow_table_put()内でrefcountが0になると、rhashtableからct_ftを削除し、tcf_ct_flow_table_cleanup_work()をRCUワークとしてスケジューリングします([3])。tcf_ct_flow_table_cleanup_work()は[4]でct_ftを解放します。この関数が[1]と[2]の間で実行されるとUAFが発生します。なお、このレース条件は非常に短いレースウィンドウであるため、トリガーは一般的に困難です。したがって、脆弱性検証のために[1]の後にmsleep(100)が挿入され、トリガーされています。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/09 |
| 登録日 | 2026/07/10 |
| 最終更新日 | 2026/07/10 |



