net/sched: act_api: fix TOCTOU NULL deref on a->goto_chain
Description
In the Linux kernel, the following vulnerability has been resolved:
net/sched: act_api: fix TOCTOU NULL deref on a->goto_chain
tcf_action_exec() handles TC_ACT_GOTO_CHAIN by first checking rcu_access_pointer(a->goto_chain) and then calling tcf_action_goto_chain_exec(), which does a second, independent rcu_dereference_bh(a->goto_chain) read and immediately dereferences chain->filter_chain. A concurrent tcf_action_set_ctrlact() (e.g. the gact replace path) can clear a->goto_chain between the two reads, so the second read returns NULL and tcf_action_goto_chain_exec() dereferences NULL.
Fix the race by doing a single rcu_dereference_bh() read of a->goto_chain in tcf_action_exec(), checking it once for NULL, and passing the resulting chain pointer into tcf_action_goto_chain_exec(). This turns the split check/use into a single check/use on one value.
Affected products
2Patches
Vulnerability mechanics
References
5- git.kernel.org/stable/c/1ec48b6715c29b20105e3485206602cff6c51ae5mitre
- git.kernel.org/stable/c/6b70886ebc428eed43a069c8944a931b5fb3f4e4mitre
- git.kernel.org/stable/c/91d55fd1fdb85c8371ca8793c788ea7d5192383amitre
- git.kernel.org/stable/c/abceabc4408fca6a9dd52611f5d197dec9390d63mitre
- git.kernel.org/stable/c/f60b396ee174206fe08ebf997d16cd3801b77b22mitre
News mentions
0No linked articles in our index yet.