{
  "affected": [
    {
      "ranges": [
        {
          "events": [
            {
              "introduced": "97714695ef904a4bdba75ca2f339215c0ae2b1fa"
            },
            {
              "fixed": "84592ee22f7d1583ce33aa733411ff36c7a1c44c"
            },
            {
              "fixed": "fe8e6c0a2f28bdab14cdf7eff4dd9755d3793007"
            },
            {
              "fixed": "91aeb87f052367a5a2743cc93777dfb4386f2f14"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "Linux",
        "name": "Kernel"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "6.12.0"
            },
            {
              "fixed": "6.12.111"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.13.0"
            },
            {
              "fixed": "6.18.53"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97410.json"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetconsole: take target_cleanup_list_lock in drop_netconsole_target()\n\ndrop_netconsole_target() unlinks the target while only holding\ntarget_list_lock. However, when the underlying interface has been\nunregistered, netconsole_netdev_event() moves the target from\ntarget_list to target_cleanup_list, and netconsole_process_cleanups_core()\nwalks that list under target_cleanup_list_lock only.\n\nIf a user removes the configfs target at the same time the cleanup\nworker is iterating target_cleanup_list, list_del() can corrupt the list\nbecause the two paths take disjoint locks while operating on the same\nlist node.\n\nAcquire target_cleanup_list_lock around the list_del() so the unlink is\nserialised against netconsole_process_cleanups_core() regardless of\nwhich list the target currently belongs to. The state transition that\ndowngrades STATE_DEACTIVATED to STATE_DISABLED is left intact and is\nperformed under the same combined locking, preserving the existing\nordering with resume_target().",
  "id": "CVE-2026-97410",
  "modified": "2026-09-27T03:30:46.709201932Z",
  "published": "2026-09-24T16:03:17.074Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/84592ee22f7d1583ce33aa733411ff36c7a1c44c"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/91aeb87f052367a5a2743cc93777dfb4386f2f14"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/fe8e6c0a2f28bdab14cdf7eff4dd9755d3793007"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97410.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-97410"
    },
    {
      "type": "PACKAGE",
      "url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
    }
  ],
  "schema_version": "1.9.0",
  "summary": "netconsole: take target_cleanup_list_lock in drop_netconsole_target()"
}