CVE-2025-39965 (GCVE-0-2025-39965)

Vulnerability from cvelistv5 – Published: 2025-10-13 13:48 – Updated: 2026-08-05 12:06
VLAI
Title
xfrm: xfrm_alloc_spi shouldn't use 0 as SPI
Summary
In the Linux kernel, the following vulnerability has been resolved: xfrm: xfrm_alloc_spi shouldn't use 0 as SPI x->id.spi == 0 means "no SPI assigned", but since commit 94f39804d891 ("xfrm: Duplicate SPI Handling"), we now create states and add them to the byspi list with this value. __xfrm_state_delete doesn't remove those states from the byspi list, since they shouldn't be there, and this shows up as a UAF the next time we go through the byspi list.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 3d8090bb53424432fa788fe9a49e8ceca74f0544 , < 0baf92d0b1590b903c1f4ead75e61715e50e8146 (git)
Affected: 2fc5b54368a1bf1d2d74b4d3b8eea5309a653e38 , < 9fcedabaae0096f712bbb4ccca6a8538af1cd1c8 (git)
Affected: 29e9158f91f99057dbd35db5e8674d93b38549fe , < a78e55776522373c446f18d5002a8de4b09e6bf7 (git)
Affected: 94f39804d891cffe4ce17737d295f3b195bc7299 , < cd8ae32e4e4652db55bce6b9c79267d8946765a9 (git)
Affected: c67d4e7a8f90fb6361ca89d4d5c9a28f4e935e47 (git)
Affected: 6.15.11 , < 6.16 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.6.103 , < 6.6.109 (semver)
Affected: 6.12.43 , < 6.12.50 (semver)
Affected: 6.16.2 , < 6.16.10 (semver)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/xfrm/xfrm_state.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0baf92d0b1590b903c1f4ead75e61715e50e8146",
              "status": "affected",
              "version": "3d8090bb53424432fa788fe9a49e8ceca74f0544",
              "versionType": "git"
            },
            {
              "lessThan": "9fcedabaae0096f712bbb4ccca6a8538af1cd1c8",
              "status": "affected",
              "version": "2fc5b54368a1bf1d2d74b4d3b8eea5309a653e38",
              "versionType": "git"
            },
            {
              "lessThan": "a78e55776522373c446f18d5002a8de4b09e6bf7",
              "status": "affected",
              "version": "29e9158f91f99057dbd35db5e8674d93b38549fe",
              "versionType": "git"
            },
            {
              "lessThan": "cd8ae32e4e4652db55bce6b9c79267d8946765a9",
              "status": "affected",
              "version": "94f39804d891cffe4ce17737d295f3b195bc7299",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "c67d4e7a8f90fb6361ca89d4d5c9a28f4e935e47",
              "versionType": "git"
            },
            {
              "lessThan": "6.16",
              "status": "affected",
              "version": "6.15.11",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/xfrm/xfrm_state.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6.6.109",
              "status": "affected",
              "version": "6.6.103",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.50",
              "status": "affected",
              "version": "6.12.43",
              "versionType": "semver"
            },
            {
              "lessThan": "6.16.10",
              "status": "affected",
              "version": "6.16.2",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.109",
                  "versionStartIncluding": "6.6.103",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.50",
                  "versionStartIncluding": "6.12.43",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16.10",
                  "versionStartIncluding": "6.16.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.15.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: xfrm_alloc_spi shouldn\u0027t use 0 as SPI\n\nx-\u003eid.spi == 0 means \"no SPI assigned\", but since commit\n94f39804d891 (\"xfrm: Duplicate SPI Handling\"), we now create states\nand add them to the byspi list with this value.\n\n__xfrm_state_delete doesn\u0027t remove those states from the byspi list,\nsince they shouldn\u0027t be there, and this shows up as a UAF the next\ntime we go through the byspi list."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerability is reached through the XFRM_MSG_ALLOCSPI message on a NETLINK_XFRM socket, which requires local system access. Although the dangling byspi entry can subsequently be dereferenced by a received ESP/AH packet, creating the SPI-0 state requires the local netlink path.\nAC:L - The attacker deterministically triggers the bug by requesting min=max=0, which verify_spi_info() accepts, then deleting the state via DELSA/FLUSHSA; there is no race, no memory-layout dependency, and no non-default config beyond ubiquitous CONFIG_XFRM_USER.\nPR:L - xfrm_user_rcv_msg() gates on netlink_net_capable(skb, CAP_NET_ADMIN), which is evaluated against the net namespace\u0027s user_ns, so any unprivileged user obtains it via \"unshare -Urn\". This is Low, not High.\nUI:N - The full sequence \u2014 allocate SPI 0, delete the state, re-walk the byspi hash \u2014 is performed entirely by the attacker\u0027s own process with no victim action required.\nS:U - The freed xfrm_state and the corrupted hash list both live in the kernel\u0027s own security authority; this is standard kernel memory corruption with no VM, IOMMU, or hypervisor boundary crossed.\nC:H - The dangling xfrm_state remains in a global RCU hash and is read back and returned as a live SA, so a reclaimed object leaks adjacent heap contents and crypto/key state, and the UAF can be escalated into an arbitrary kernel read primitive.\nI:H - Walkers perform refcount_inc_not_zero on the freed object (a write to freed memory) and then use it as a live SA whose type/mode function-pointer fields the attacker can control by re-spraying the xfrm_state slab, yielding control-flow hijack and arbitrary write.\nA:H - Dereferencing the freed state during byspi traversal, hash resize, or netns teardown (WARN_ON(!hlist_empty())) reliably produces a KASAN-detected use-after-free, list corruption, and kernel panic."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:06:34.191Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0baf92d0b1590b903c1f4ead75e61715e50e8146"
        },
        {
          "url": "https://git.kernel.org/stable/c/9fcedabaae0096f712bbb4ccca6a8538af1cd1c8"
        },
        {
          "url": "https://git.kernel.org/stable/c/a78e55776522373c446f18d5002a8de4b09e6bf7"
        },
        {
          "url": "https://git.kernel.org/stable/c/cd8ae32e4e4652db55bce6b9c79267d8946765a9"
        }
      ],
      "title": "xfrm: xfrm_alloc_spi shouldn\u0027t use 0 as SPI",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-39965",
    "datePublished": "2025-10-13T13:48:31.033Z",
    "dateReserved": "2025-04-16T07:20:57.149Z",
    "dateUpdated": "2026-08-05T12:06:34.191Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-39965",
      "date": "2026-09-23",
      "epss": "0.00197",
      "percentile": "0.09676"
    },
    "microsoft_vex": {
      "current_release_date": "2025-10-15T01:01:28.000Z",
      "cve": "CVE-2025-39965",
      "id": "msrc_CVE-2025-39965",
      "initial_release_date": "2025-10-02T00:00:00.000Z",
      "product_status:fixed": "1",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "xfrm: xfrm_alloc_spi shouldn\u0027t use 0 as SPI",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-39965.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/xfrm/xfrm_state.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "0baf92d0b1590b903c1f4ead75e61715e50e8146",
                    "status": "affected",
                    "version": "3d8090bb53424432fa788fe9a49e8ceca74f0544",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "9fcedabaae0096f712bbb4ccca6a8538af1cd1c8",
                    "status": "affected",
                    "version": "2fc5b54368a1bf1d2d74b4d3b8eea5309a653e38",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a78e55776522373c446f18d5002a8de4b09e6bf7",
                    "status": "affected",
                    "version": "29e9158f91f99057dbd35db5e8674d93b38549fe",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "cd8ae32e4e4652db55bce6b9c79267d8946765a9",
                    "status": "affected",
                    "version": "94f39804d891cffe4ce17737d295f3b195bc7299",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "c67d4e7a8f90fb6361ca89d4d5c9a28f4e935e47",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6.16",
                    "status": "affected",
                    "version": "6.15.11",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/xfrm/xfrm_state.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "6.6.109",
                    "status": "affected",
                    "version": "6.6.103",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.12.50",
                    "status": "affected",
                    "version": "6.12.43",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.16.10",
                    "status": "affected",
                    "version": "6.16.2",
                    "versionType": "semver"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "A33D59EB-F9EC-4F4A-B85C-8B9DF77F0CBE",
                    "versionEndExcluding": "6.6.109",
                    "versionStartIncluding": "6.6.103",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "D946BB01-10F6-44C7-A2E5-672C4B746920",
                    "versionEndExcluding": "6.12.50",
                    "versionStartIncluding": "6.12.43",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "53FE35DC-2528-48D7-A855-1127CA02EE4D",
                    "versionEndExcluding": "6.16",
                    "versionStartIncluding": "6.15.11",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "EDE9892A-2523-424A-8D02-DFCE8B965230",
                    "versionEndExcluding": "6.16.10",
                    "versionStartIncluding": "6.16.2",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "327D22EF-390B-454C-BD31-2ED23C998A1C",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc2:*:*:*:*:*:*",
                    "matchCriteriaId": "C730CD9A-D969-4A8E-9522-162AAF7C0EE9",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc3:*:*:*:*:*:*",
                    "matchCriteriaId": "39982C4B-716E-4B2F-8196-FA301F47807D",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc4:*:*:*:*:*:*",
                    "matchCriteriaId": "340BEEA9-D70D-4290-B502-FBB1032353B1",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc5:*:*:*:*:*:*",
                    "matchCriteriaId": "47E4C5C0-079F-4838-971B-8C503D48FCC2",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc6:*:*:*:*:*:*",
                    "matchCriteriaId": "5A4516A6-C12E-42A4-8C0E-68AEF3264504",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.17:rc7:*:*:*:*:*:*",
                    "matchCriteriaId": "3963C3A0-CEA1-4F5C-8011-3A593ABB684D",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: xfrm_alloc_spi shouldn\u0027t use 0 as SPI\n\nx-\u003eid.spi == 0 means \"no SPI assigned\", but since commit\n94f39804d891 (\"xfrm: Duplicate SPI Handling\"), we now create states\nand add them to the byspi list with this value.\n\n__xfrm_state_delete doesn\u0027t remove those states from the byspi list,\nsince they shouldn\u0027t be there, and this shows up as a UAF the next\ntime we go through the byspi list."
          }
        ],
        "id": "CVE-2025-39965",
        "lastModified": "2026-07-30T06:24:01.897",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            },
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 5.5,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 3.6,
              "source": "nvd@nist.gov",
              "type": "Primary"
            }
          ]
        },
        "published": "2025-10-13T14:15:34.910",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/0baf92d0b1590b903c1f4ead75e61715e50e8146"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/9fcedabaae0096f712bbb4ccca6a8538af1cd1c8"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a78e55776522373c446f18d5002a8de4b09e6bf7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/cd8ae32e4e4652db55bce6b9c79267d8946765a9"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Modified",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "NVD-CWE-noinfo"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-21T02:29:41+00:00",
      "cve": "CVE-2025-39965",
      "id": "CVE-2025-39965",
      "initial_release_date": "2025-10-13T00:00:00+00:00",
      "product_status:known_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: xfrm: xfrm_alloc_spi shouldn\u0027t use 0 as SPI",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-39965.json",
      "version": "3"
    }
  }
}



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…