CVE-2026-97958
Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_api: Don't replay RTM_GETCHAIN in tc_ctl_chain(). If a netlink socket sends RTM_GETCHAIN requests repeatedly without recv()ing the responses, tc_ctl_chain() hogs CPU and triggers Hung Task splat. [0] As caught in the stack trace, netlink_attachskb() could confuse tc_ctl_chain() by returning -EAGAIN when the userspace netlink socket's receive buffer is full. The replay: label exists since commit 32a4f5ecd738 ("net: sched: introduce chain object to uapi") but was not used initially. Since commit 9f407f1768d3 ("net: sched: introduce chain templates"), the label is needed for RTM_NEWCHAIN because tcf_proto_lookup_ops() may release RTNL to call request_module(). However, the replay logic is unnecessary for RTM_GETCHAIN. Let's apply the replay logic only for RTM_NEWCHAIN. [0]: INFO: task repro:1018 is blocked on a mutex likely owned by task repro:1022. task:repro state:R running task stack:14096 pid:1022 tgid:1014 ppid:961 task_flags:0x400040 flags:0x00080000 Call Trace: <TASK> ? clockevents_program_event (kernel/time/clockevents.c:372) ? pskb_expand_head (net/core/skbuff.c:615) ? skb_release_data (net/core/skbuff.c:1122) ? netlink_attachskb (./include/linux/skbuff.h:1323 ./include/linux/skbuff.h:1332 net/netlink/af_netlink.c:1232) ? __netlink_lookup (./include/linux/rcupdate.h:882 ./include/linux/rhashtable.h:711 net/netlink/af_netlink.c:499) ? tc_chain_notify (net/sched/cls_api.c:3045) ? tc_chain_notify (./include/linux/skbuff.h:1384 net/sched/cls_api.c:3041) ? netlink_unicast (net/netlink/af_netlink.c:1335) ? rtnl_unicast (./include/net/netlink.h:1198 net/core/rtnetlink.c:985) ? tc_ctl_chain (net/sched/cls_api.c:3242) ? rtnetlink_rcv_msg (net/core/rtnetlink.c:7146) ? netlink_unicast (net/netlink/af_netlink.c:1354) ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:7177) ? netlink_rcv_skb (net/netlink/af_netlink.c:2556) ? netlink_unicast (net/netlink/af_netlink.c:1319) ? netlink_sendmsg (net/netlink/af_netlink.c:1900) ? __sock_sendmsg (net/socket.c:800) ? __sys_sendto (net/socket.c:2281) ? __x64_sys_sendto (net/socket.c:2288 net/socket.c:2284 net/socket.c:2284) ? do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) </TASK>
How to fix
- Linux Linux240251a4ca7cda213103694b6e21c4a5745e5d8b, 9a0f07f7dbd1bfe8c2fd03ad055e9e60a703d5df, 6558b0d46c5941ed1aa67da8878e224c54239cc5, 96c2fc5daf983af2e0c1256c31e89c1f3f855279, a1c2840d95af1fa3d83ba71e23fa0c674a4c6796, 503ba58481e3ba69d28127d35a39cec529f9670c, e9ac395bb56122a057d0aa91a6b55d9e3fa37c26, dff39930ad5e53d202bfdfb14687d1d2fd753b4d or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < 240251a4ca7cda213103694b6e21c4a5745e5d8b, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < 9a0f07f7dbd1bfe8c2fd03ad055e9e60a703d5df, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < 6558b0d46c5941ed1aa67da8878e224c54239cc5, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < 96c2fc5daf983af2e0c1256c31e89c1f3f855279, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < a1c2840d95af1fa3d83ba71e23fa0c674a4c6796, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < 503ba58481e3ba69d28127d35a39cec529f9670c, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < e9ac395bb56122a057d0aa91a6b55d9e3fa37c26, 2ed9db3074fcd8d12709fe40ff0e691d74229818 ≤ v < dff39930ad5e53d202bfdfb14687d1d2fd753b4d, 4.19 | 240251a4ca7cda213103694b6e21c4a5745e5d8b, 9a0f07f7dbd1bfe8c2fd03ad055e9e60a703d5df, 6558b0d46c5941ed1aa67da8878e224c54239cc5, 96c2fc5daf983af2e0c1256c31e89c1f3f855279, a1c2840d95af1fa3d83ba71e23fa0c674a4c6796, 503ba58481e3ba69d28127d35a39cec529f9670c, e9ac395bb56122a057d0aa91a6b55d9e3fa37c26, dff39930ad5e53d202bfdfb14687d1d2fd753b4d |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.