← Back to CVE Explorer

CVE-2026-74740

Full vulnerability record from the local CVENow database.

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.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-08-26 15:16:52.743000
Last modified
2026-10-30 13:20:05.597000
View original CVE JSON
{
  "id": "CVE-2026-74740",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-08-26T15:16:52.743",
  "lastModified": "2026-10-30T13:20:05.597",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: act_api: fix TOCTOU NULL deref on a->goto_chain\n\ntcf_action_exec() handles TC_ACT_GOTO_CHAIN by first checking\nrcu_access_pointer(a->goto_chain) and then calling\ntcf_action_goto_chain_exec(), which does a second, independent\nrcu_dereference_bh(a->goto_chain) read and immediately dereferences\nchain->filter_chain. A concurrent tcf_action_set_ctrlact() (e.g. the gact\nreplace path) can clear a->goto_chain between the two reads, so the second\nread returns NULL and tcf_action_goto_chain_exec() dereferences NULL.\n\nFix the race by doing a single rcu_dereference_bh() read of a->goto_chain\nin tcf_action_exec(), checking it once for NULL, and passing the resulting\nchain pointer into tcf_action_goto_chain_exec(). This turns the split\ncheck/use into a single check/use on one value."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "net/sched/act_api.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "ee3bbfe806cdb46b02cda63626cb50a7a7b19fc5",
              "lessThan": "28aa0c9dd0b1b38436995d4c15621ad3f896c7e3",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "ee3bbfe806cdb46b02cda63626cb50a7a7b19fc5",
              "lessThan": "91d55fd1fdb85c8371ca8793c788ea7d5192383a",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "ee3bbfe806cdb46b02cda63626cb50a7a7b19fc5",
              "lessThan": "1ec48b6715c29b20105e3485206602cff6c51ae5",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "ee3bbfe806cdb46b02cda63626cb50a7a7b19fc5",
              "lessThan": "abceabc4408fca6a9dd52611f5d197dec9390d63",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "ee3bbfe806cdb46b02cda63626cb50a7a7b19fc5",
              "lessThan": "6b70886ebc428eed43a069c8944a931b5fb3f4e4",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "ee3bbfe806cdb46b02cda63626cb50a7a7b19fc5",
              "lessThan": "f60b396ee174206fe08ebf997d16cd3801b77b22",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "net/sched/act_api.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.1",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.1",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.153",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.105",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.46",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.10",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/1ec48b6715c29b20105e3485206602cff6c51ae5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/28aa0c9dd0b1b38436995d4c15621ad3f896c7e3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/6b70886ebc428eed43a069c8944a931b5fb3f4e4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/91d55fd1fdb85c8371ca8793c788ea7d5192383a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/abceabc4408fca6a9dd52611f5d197dec9390d63",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f60b396ee174206fe08ebf997d16cd3801b77b22",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}