GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-80845 (GCVE-0-2026-80845)

Vulnerability from cvelistv5 – Published: 2026-09-04 15:54 – Updated: 2026-09-04 15:54
VLAI
Title
xfrm: avoid lock inversion in nat keepalive work
Summary
In the Linux kernel, the following vulnerability has been resolved: xfrm: avoid lock inversion in nat keepalive work nat_keepalive_work() walks the state table while xfrm_state_walk() holds net->xfrm.xfrm_state_lock. Its callback then acquires x->lock, which conflicts with the delete path taking the same locks in reverse order via xfrm_state_delete() and __xfrm_state_delete(). This creates an AB-BA deadlock that is reported by lockdep when a NAT keepalive worker races with SA deletion. Fix this by splitting the keepalive walk into two phases. First, collect the candidate states while the walk holds xfrm_state_lock and take a reference on each state. Then, after the walk completes, process each collected state and acquire x->lock without nesting it under xfrm_state_lock.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae , < ea09210462316e5235a25eccb11ad0708d86615e (git)
Affected: f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae , < 5c86c895d1cac81a71ead3005084c6265cf6a7a5 (git)
Affected: f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae , < 89ef3a2e1e4682ab82b0455ce113f8c39fb9e50d (git)
Affected: f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae , < a9fa05b7a1246797748d15771052639e0d3cabf1 (git)
Affected: f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae , < 763fe700b7c58ad64fe5202c5638848244dd4127 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.12.108 , ≤ 6.12.* (semver)
Unaffected: 6.18.49 , ≤ 6.18.* (semver)
Unaffected: 7.1.13 , ≤ 7.1.* (semver)
Unaffected: 7.2.3 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/xfrm/xfrm_nat_keepalive.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ea09210462316e5235a25eccb11ad0708d86615e",
              "status": "affected",
              "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
              "versionType": "git"
            },
            {
              "lessThan": "5c86c895d1cac81a71ead3005084c6265cf6a7a5",
              "status": "affected",
              "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
              "versionType": "git"
            },
            {
              "lessThan": "89ef3a2e1e4682ab82b0455ce113f8c39fb9e50d",
              "status": "affected",
              "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
              "versionType": "git"
            },
            {
              "lessThan": "a9fa05b7a1246797748d15771052639e0d3cabf1",
              "status": "affected",
              "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
              "versionType": "git"
            },
            {
              "lessThan": "763fe700b7c58ad64fe5202c5638848244dd4127",
              "status": "affected",
              "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/xfrm/xfrm_nat_keepalive.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.108",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.49",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.108",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.49",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.13",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.3",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: avoid lock inversion in nat keepalive work\n\nnat_keepalive_work() walks the state table while xfrm_state_walk()\nholds net-\u003exfrm.xfrm_state_lock. Its callback then acquires x-\u003elock,\nwhich conflicts with the delete path taking the same locks in reverse\norder via xfrm_state_delete() and __xfrm_state_delete(). This creates\nan AB-BA deadlock that is reported by lockdep when a NAT keepalive\nworker races with SA deletion.\n\nFix this by splitting the keepalive walk into two phases. First,\ncollect the candidate states while the walk holds xfrm_state_lock and\ntake a reference on each state. Then, after the walk completes, process\neach collected state and acquire x-\u003elock without nesting it under\nxfrm_state_lock."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-04T15:54:55.489Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ea09210462316e5235a25eccb11ad0708d86615e"
        },
        {
          "url": "https://git.kernel.org/stable/c/5c86c895d1cac81a71ead3005084c6265cf6a7a5"
        },
        {
          "url": "https://git.kernel.org/stable/c/89ef3a2e1e4682ab82b0455ce113f8c39fb9e50d"
        },
        {
          "url": "https://git.kernel.org/stable/c/a9fa05b7a1246797748d15771052639e0d3cabf1"
        },
        {
          "url": "https://git.kernel.org/stable/c/763fe700b7c58ad64fe5202c5638848244dd4127"
        }
      ],
      "title": "xfrm: avoid lock inversion in nat keepalive work",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-80845",
    "datePublished": "2026-09-04T15:54:55.489Z",
    "dateReserved": "2026-08-26T14:34:25.797Z",
    "dateUpdated": "2026-09-04T15:54:55.489Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-80845",
      "date": "2026-09-18",
      "epss": "0.00168",
      "percentile": "0.06487"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/xfrm/xfrm_nat_keepalive.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ea09210462316e5235a25eccb11ad0708d86615e",
                    "status": "affected",
                    "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5c86c895d1cac81a71ead3005084c6265cf6a7a5",
                    "status": "affected",
                    "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "89ef3a2e1e4682ab82b0455ce113f8c39fb9e50d",
                    "status": "affected",
                    "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a9fa05b7a1246797748d15771052639e0d3cabf1",
                    "status": "affected",
                    "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "763fe700b7c58ad64fe5202c5638848244dd4127",
                    "status": "affected",
                    "version": "f531d13bdfe3f4f084aaa8acae2cb0f02295f5ae",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/xfrm/xfrm_nat_keepalive.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.11"
                  },
                  {
                    "lessThan": "6.11",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.108",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.49",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.13",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.3",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "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\nxfrm: avoid lock inversion in nat keepalive work\n\nnat_keepalive_work() walks the state table while xfrm_state_walk()\nholds net-\u003exfrm.xfrm_state_lock. Its callback then acquires x-\u003elock,\nwhich conflicts with the delete path taking the same locks in reverse\norder via xfrm_state_delete() and __xfrm_state_delete(). This creates\nan AB-BA deadlock that is reported by lockdep when a NAT keepalive\nworker races with SA deletion.\n\nFix this by splitting the keepalive walk into two phases. First,\ncollect the candidate states while the walk holds xfrm_state_lock and\ntake a reference on each state. Then, after the walk completes, process\neach collected state and acquire x-\u003elock without nesting it under\nxfrm_state_lock."
          }
        ],
        "id": "CVE-2026-80845",
        "lastModified": "2026-09-04T16:18:13.173",
        "metrics": {},
        "published": "2026-09-04T16:18:13.173",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5c86c895d1cac81a71ead3005084c6265cf6a7a5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/763fe700b7c58ad64fe5202c5638848244dd4127"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/89ef3a2e1e4682ab82b0455ce113f8c39fb9e50d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/a9fa05b7a1246797748d15771052639e0d3cabf1"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ea09210462316e5235a25eccb11ad0708d86615e"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:07:24Z",
      "cve": "CVE-2026-80845",
      "id": "CVE-2026-80845",
      "initial_release_date": "2026-09-05T00:26:20Z",
      "product_status:known_affected": "29",
      "product_status:known_not_affected": "324",
      "product_status:recommended": "4",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-80845",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-80845.json",
      "version": "5"
    }
  }
}



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…

Detection rules are retrieved from Rulezet.

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…