← Back to CVE Explorer

CVE-2026-80848

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: xfrm: espintcp: fix UAF during close ZDI reported and analyzed a race condition during close for espintcp sockets: espintcp_close() frees emsg->skb via kfree_skb() without holding any socket lock. Concurrently, the xfrm_trans_reinject work queue invokes esp_output_tcp_finish() -> espintcp_push_skb() -> espintcp_push_msgs() -> skb_send_sock_locked(), which reads the same skb as a data source. Fix this by adding a synchronize_rcu() call after resetting sk_prot, since esp_output_tcp_finish() runs under RCU and won't use a socket with sk_prot == &tcp_prot. Simply taking the socket lock in espintcp_close() could lead to leaks, if esp_output_tcp_finish() re-adds an skb in the slot we just freed. After this, the existing barrier() is no longer needed.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-04 16:18:13.540000
Last modified
2026-10-19 09:17:20.307000
View original CVE JSON
{
  "id": "CVE-2026-80848",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-04T16:18:13.540",
  "lastModified": "2026-10-19T09:17:20.307",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: espintcp: fix UAF during close\n\nZDI reported and analyzed a race condition during close for espintcp\nsockets:\n\n    espintcp_close() frees emsg->skb via kfree_skb() without holding\n    any socket lock. Concurrently, the xfrm_trans_reinject work queue\n    invokes esp_output_tcp_finish() -> espintcp_push_skb() ->\n    espintcp_push_msgs() -> skb_send_sock_locked(), which reads the\n    same skb as a data source.\n\nFix this by adding a synchronize_rcu() call after resetting sk_prot,\nsince esp_output_tcp_finish() runs under RCU and won't use a socket\nwith sk_prot == &tcp_prot.  Simply taking the socket lock in\nespintcp_close() could lead to leaks, if esp_output_tcp_finish()\nre-adds an skb in the slot we just freed. After this, the existing\nbarrier() is no longer needed."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "net/xfrm/espintcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "29121c5e6591da527e8e36ddac7120dc527f574d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "ed5d9102190c45fc70121c036b0626b740040b75",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "4bc0dfa28dca6fc0084203732695968049c44072",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "ff8dd7a932f34409a56e1b91a1219340f17457e9",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "4b31a875693c480c611519faca46216514e3e052",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "24efebecf415ba264adba0f0491cec436463a14f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "eb3bbf29c723fe75c0eb92be14f0ec92971fe272",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "54b41ad14da9a981131ab6e4d3f79321a503ea5d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "lessThan": "deb232e884877bf10b4ce2580909eedec986c284",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "net/xfrm/espintcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.6",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.6",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.269",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.220",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.187",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.156",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.108",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.49",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.13",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.3",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/24efebecf415ba264adba0f0491cec436463a14f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/29121c5e6591da527e8e36ddac7120dc527f574d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4b31a875693c480c611519faca46216514e3e052",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4bc0dfa28dca6fc0084203732695968049c44072",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/54b41ad14da9a981131ab6e4d3f79321a503ea5d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/deb232e884877bf10b4ce2580909eedec986c284",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/eb3bbf29c723fe75c0eb92be14f0ec92971fe272",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ed5d9102190c45fc70121c036b0626b740040b75",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ff8dd7a932f34409a56e1b91a1219340f17457e9",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}