{"id":"CVE-2026-97958","revision":"134180bfd4f042019c0f672d565e12e9","records":[{"revision":"134180bfd4f042019c0f672d565e12e9","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-97958","aliases":[],"title":"net/sched: cls_api: Don't replay RTM_GETCHAIN in tc_ctl_chain().","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_api: Don't replay RTM_GETCHAIN in tc_ctl_chain().\n\nIf a netlink socket sends RTM_GETCHAIN requests repeatedly\nwithout recv()ing the responses, tc_ctl_chain() hogs CPU and\ntriggers Hung Task splat. [0]\n\nAs caught in the stack trace, netlink_attachskb() could confuse\ntc_ctl_chain() by returning -EAGAIN when the userspace netlink\nsocket's receive buffer is full.\n\nThe replay: label exists since commit 32a4f5ecd738 (\"net: sched:\nintroduce chain object to uapi\") but was not used initially.\n\nSince commit 9f407f1768d3 (\"net: sched: introduce chain templates\"),\nthe label is needed for RTM_NEWCHAIN because tcf_proto_lookup_ops()\nmay release RTNL to call request_module().\n\nHowever, the replay logic is unnecessary for RTM_GETCHAIN.\n\nLet's apply the replay logic only for RTM_NEWCHAIN.\n\n[0]:\nINFO: task repro:1018 is blocked on a mutex likely owned by task repro:1022.\ntask:repro           state:R  running task     stack:14096 pid:1022  tgid:1014  ppid:961    task_flags:0x400040 flags:0x00080000\nCall Trace:\n <TASK>\n ? clockevents_program_event (kernel/time/clockevents.c:372)\n ? pskb_expand_head (net/core/skbuff.c:615)\n ? skb_release_data (net/core/skbuff.c:1122)\n ? netlink_attachskb (./include/linux/skbuff.h:1323 ./include/linux/skbuff.h:1332 net/netlink/af_netlink.c:1232)\n ? __netlink_lookup (./include/linux/rcupdate.h:882 ./include/linux/rhashtable.h:711 net/netlink/af_netlink.c:499)\n ? tc_chain_notify (net/sched/cls_api.c:3045)\n ? tc_chain_notify (./include/linux/skbuff.h:1384 net/sched/cls_api.c:3041)\n ? netlink_unicast (net/netlink/af_netlink.c:1335)\n ? rtnl_unicast (./include/net/netlink.h:1198 net/core/rtnetlink.c:985)\n ? tc_ctl_chain (net/sched/cls_api.c:3242)\n ? rtnetlink_rcv_msg (net/core/rtnetlink.c:7146)\n ? netlink_unicast (net/netlink/af_netlink.c:1354)\n ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:7177)\n ? netlink_rcv_skb (net/netlink/af_netlink.c:2556)\n ? netlink_unicast (net/netlink/af_netlink.c:1319)\n ? netlink_sendmsg (net/netlink/af_netlink.c:1900)\n ? __sock_sendmsg (net/socket.c:800)\n ? __sys_sendto (net/socket.c:2281)\n ? __x64_sys_sendto (net/socket.c:2288 net/socket.c:2284 net/socket.c:2284)\n ? do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84)\n ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)\n </TASK>","state":0,"publishedAt":"2026-09-25T10:23:03.753+00:00","modifiedAt":"2026-10-19T09:11:24.306+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/sched/cls_api.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"240251a4ca7cda213103694b6e21c4a5745e5d8b\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"9a0f07f7dbd1bfe8c2fd03ad055e9e60a703d5df\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"6558b0d46c5941ed1aa67da8878e224c54239cc5\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"96c2fc5daf983af2e0c1256c31e89c1f3f855279\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"a1c2840d95af1fa3d83ba71e23fa0c674a4c6796\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"503ba58481e3ba69d28127d35a39cec529f9670c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"e9ac395bb56122a057d0aa91a6b55d9e3fa37c26\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2ed9db3074fcd8d12709fe40ff0e691d74229818\",\n                            \"lessThan\": \"dff39930ad5e53d202bfdfb14687d1d2fd753b4d\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/sched/cls_api.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"4.19\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"4.19\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.271\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.222\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.189\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.158\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.111\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.53\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.7\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/240251a4ca7cda213103694b6e21c4a5745e5d8b","https://git.kernel.org/stable/c/9a0f07f7dbd1bfe8c2fd03ad055e9e60a703d5df","https://git.kernel.org/stable/c/6558b0d46c5941ed1aa67da8878e224c54239cc5","https://git.kernel.org/stable/c/96c2fc5daf983af2e0c1256c31e89c1f3f855279","https://git.kernel.org/stable/c/a1c2840d95af1fa3d83ba71e23fa0c674a4c6796","https://git.kernel.org/stable/c/503ba58481e3ba69d28127d35a39cec529f9670c","https://git.kernel.org/stable/c/e9ac395bb56122a057d0aa91a6b55d9e3fa37c26","https://git.kernel.org/stable/c/dff39930ad5e53d202bfdfb14687d1d2fd753b4d"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-97958","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-97958","identifiers":["CVE-2026-97958"]},"retained":false,"historicalAffected":[]}],"coverage":[]}