FKIE_CVE-2026-97958

Vulnerability from fkie_nvd - Published: 2026-09-25 11:17 - Updated: 2026-09-25 11:17
Severity
Summary
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>
Impacted products
Vendor Product Version

{
  "affected": [
    {
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/sched/cls_api.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a1c2840d95af1fa3d83ba71e23fa0c674a4c6796",
              "status": "affected",
              "version": "2ed9db3074fcd8d12709fe40ff0e691d74229818",
              "versionType": "git"
            },
            {
              "lessThan": "503ba58481e3ba69d28127d35a39cec529f9670c",
              "status": "affected",
              "version": "2ed9db3074fcd8d12709fe40ff0e691d74229818",
              "versionType": "git"
            },
            {
              "lessThan": "e9ac395bb56122a057d0aa91a6b55d9e3fa37c26",
              "status": "affected",
              "version": "2ed9db3074fcd8d12709fe40ff0e691d74229818",
              "versionType": "git"
            },
            {
              "lessThan": "dff39930ad5e53d202bfdfb14687d1d2fd753b4d",
              "status": "affected",
              "version": "2ed9db3074fcd8d12709fe40ff0e691d74229818",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sched/cls_api.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.19"
            },
            {
              "lessThan": "4.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_api: Don\u0027t 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\u0027s 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\u0027s 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 \u003cTASK\u003e\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 \u003c/TASK\u003e"
    }
  ],
  "id": "CVE-2026-97958",
  "lastModified": "2026-09-25T11:17:23.477",
  "metrics": {},
  "published": "2026-09-25T11:17:23.477",
  "references": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/503ba58481e3ba69d28127d35a39cec529f9670c"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/a1c2840d95af1fa3d83ba71e23fa0c674a4c6796"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/dff39930ad5e53d202bfdfb14687d1d2fd753b4d"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/e9ac395bb56122a057d0aa91a6b55d9e3fa37c26"
    }
  ],
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "vulnStatus": "Received"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…