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

CVE-2026-23239 (GCVE-0-2026-23239)

Vulnerability from cvelistv5 – Published: 2026-03-10 17:28 – Updated: 2026-08-05 12:20
VLAI
Title
espintcp: Fix race condition in espintcp_close()
Summary
In the Linux kernel, the following vulnerability has been resolved: espintcp: Fix race condition in espintcp_close() This issue was discovered during a code audit. After cancel_work_sync() is called from espintcp_close(), espintcp_tx_work() can still be scheduled from paths such as the Delayed ACK handler or ksoftirqd. As a result, the espintcp_tx_work() worker may dereference a freed espintcp ctx or sk. The following is a simple race scenario: cpu0 cpu1 espintcp_close() cancel_work_sync(&ctx->work); espintcp_write_space() schedule_work(&ctx->work); To prevent this race condition, cancel_work_sync() is replaced with disable_work_sync().
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 , < f7ad8b1d0e421c524604d5076b73232093490d5c (git)
Affected: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 , < 664e9df53226b4505a0894817ecad2c610ab11d8 (git)
Affected: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 , < 022ff7f347588de6e17879a1da6019647b21321b (git)
Affected: e27cca96cd68fa2c6814c90f9a1cfd36bb68c593 , < e1512c1db9e8794d8d130addd2615ec27231d994 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.6
Unaffected: 0 , < 5.6 (semver)
Unaffected: 6.12.75 , ≤ 6.12.* (semver)
Unaffected: 6.18.16 , ≤ 6.18.* (semver)
Unaffected: 6.19.6 , ≤ 6.19.* (semver)
Unaffected: 7.0 , ≤ * (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/espintcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f7ad8b1d0e421c524604d5076b73232093490d5c",
              "status": "affected",
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "versionType": "git"
            },
            {
              "lessThan": "664e9df53226b4505a0894817ecad2c610ab11d8",
              "status": "affected",
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "versionType": "git"
            },
            {
              "lessThan": "022ff7f347588de6e17879a1da6019647b21321b",
              "status": "affected",
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "versionType": "git"
            },
            {
              "lessThan": "e1512c1db9e8794d8d130addd2615ec27231d994",
              "status": "affected",
              "version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/xfrm/espintcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.6"
            },
            {
              "lessThan": "5.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.75",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.16",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.75",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.16",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.6",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nespintcp: Fix race condition in espintcp_close()\n\nThis issue was discovered during a code audit.\n\nAfter cancel_work_sync() is called from espintcp_close(),\nespintcp_tx_work() can still be scheduled from paths such as\nthe Delayed ACK handler or ksoftirqd.\nAs a result, the espintcp_tx_work() worker may dereference a\nfreed espintcp ctx or sk.\n\nThe following is a simple race scenario:\n\n           cpu0                             cpu1\n\n  espintcp_close()\n    cancel_work_sync(\u0026ctx-\u003ework);\n                                     espintcp_write_space()\n                                       schedule_work(\u0026ctx-\u003ework);\n\nTo prevent this race condition, cancel_work_sync() is\nreplaced with disable_work_sync()."
        }
      ],
      "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 attacker must be a local user to create a TCP socket and set the espintcp ULP via setsockopt(TCP_ULP). This cannot be triggered remotely without local socket access.\nAC:L - The attacker controls both sides of the race: they trigger close() and control the remote peer (e.g., localhost connection) to send TCP ACKs that fire write_space, reliably creating the race condition.\nPR:L - No capability checks exist in the TCP_ULP setsockopt path or espintcp_init_sk(). Any unprivileged local user can set up an espintcp ULP socket and trigger this bug.\nUI:N - No user interaction is required; the attacker autonomously creates the socket, sets the ULP, and triggers the race.\nS:U - The vulnerability is a kernel-level use-after-free that does not cross a security boundary such as a VM or sandbox.\nC:H - The use-after-free on espintcp_ctx and sock structures allows an attacker to control freed object contents via heap spraying, enabling arbitrary kernel memory reads.\nI:H - The use-after-free enables heap spraying and arbitrary write primitives through the freed espintcp_ctx and sock structures, allowing potential kernel code execution.\nA:H - The use-after-free causes kernel crashes (oops/panic) when the work function dereferences freed memory, providing reliable denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:20:49.864Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f7ad8b1d0e421c524604d5076b73232093490d5c"
        },
        {
          "url": "https://git.kernel.org/stable/c/664e9df53226b4505a0894817ecad2c610ab11d8"
        },
        {
          "url": "https://git.kernel.org/stable/c/022ff7f347588de6e17879a1da6019647b21321b"
        },
        {
          "url": "https://git.kernel.org/stable/c/e1512c1db9e8794d8d130addd2615ec27231d994"
        }
      ],
      "title": "espintcp: Fix race condition in espintcp_close()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-23239",
    "datePublished": "2026-03-10T17:28:26.190Z",
    "dateReserved": "2026-01-13T15:37:45.989Z",
    "dateUpdated": "2026-08-05T12:20:49.864Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-23239",
      "date": "2026-09-16",
      "epss": "0.00101",
      "percentile": "0.01026"
    },
    "microsoft_vex": {
      "current_release_date": "2026-03-26T01:37:49.000Z",
      "cve": "CVE-2026-23239",
      "id": "msrc_CVE-2026-23239",
      "initial_release_date": "2026-03-02T00:00:00.000Z",
      "product_status:known_not_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "espintcp: Fix race condition in espintcp_close()",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-23239.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-23239\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-03-10T18:18:13.383\",\"lastModified\":\"2026-06-17T10:21:09.960\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nespintcp: Fix race condition in espintcp_close()\\n\\nThis issue was discovered during a code audit.\\n\\nAfter cancel_work_sync() is called from espintcp_close(),\\nespintcp_tx_work() can still be scheduled from paths such as\\nthe Delayed ACK handler or ksoftirqd.\\nAs a result, the espintcp_tx_work() worker may dereference a\\nfreed espintcp ctx or sk.\\n\\nThe following is a simple race scenario:\\n\\n           cpu0                             cpu1\\n\\n  espintcp_close()\\n    cancel_work_sync(\u0026ctx-\u003ework);\\n                                     espintcp_write_space()\\n                                       schedule_work(\u0026ctx-\u003ework);\\n\\nTo prevent this race condition, cancel_work_sync() is\\nreplaced with disable_work_sync().\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\\n\\nespintcp: Correcci\u00f3n de condici\u00f3n de carrera en espintcp_close()\\n\\nEste problema fue descubierto durante una auditor\u00eda de c\u00f3digo.\\n\\nDespu\u00e9s de que se llama a cancel_work_sync() desde espintcp_close(), espintcp_tx_work() a\u00fan puede ser programado desde rutas como el gestor de ACK Retrasado o ksoftirqd.\\nComo resultado, el trabajador espintcp_tx_work() puede desreferenciar un ctx o sk de espintcp liberado.\\n\\nEl siguiente es un escenario de condici\u00f3n de carrera simple:\\n\\n           cpu0                             cpu1\\n\\n  espintcp_close()\\n    cancel_work_sync(\u0026amp;ctx-\u0026gt;work);\\n                                     espintcp_write_space()\\n                                       schedule_work(\u0026amp;ctx-\u0026gt;work);\\n\\nPara prevenir esta condici\u00f3n de carrera, cancel_work_sync() es reemplazado por disable_work_sync().\"}],\"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\":\"f7ad8b1d0e421c524604d5076b73232093490d5c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e27cca96cd68fa2c6814c90f9a1cfd36bb68c593\",\"lessThan\":\"664e9df53226b4505a0894817ecad2c610ab11d8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e27cca96cd68fa2c6814c90f9a1cfd36bb68c593\",\"lessThan\":\"022ff7f347588de6e17879a1da6019647b21321b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e27cca96cd68fa2c6814c90f9a1cfd36bb68c593\",\"lessThan\":\"e1512c1db9e8794d8d130addd2615ec27231d994\",\"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\":\"6.12.75\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.16\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.19.6\",\"lessThanOrEqual\":\"6.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-362\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.6\",\"versionEndExcluding\":\"6.12.75\",\"matchCriteriaId\":\"168F1117-B247-4CC5-B097-132EE9E96FDD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.18.16\",\"matchCriteriaId\":\"B4B8CDA9-BADF-4CF5-8B3B-702DE8EEA40B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.19\",\"versionEndExcluding\":\"6.19.6\",\"matchCriteriaId\":\"373EEEDA-FAA1-4FB4-B6ED-DB4DD99DBE67\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"F253B622-8837-4245-BCE5-A7BF8FC76A16\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/022ff7f347588de6e17879a1da6019647b21321b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/664e9df53226b4505a0894817ecad2c610ab11d8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e1512c1db9e8794d8d130addd2615ec27231d994\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f7ad8b1d0e421c524604d5076b73232093490d5c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-02T17:12:08+00:00",
      "cve": "CVE-2026-23239",
      "id": "CVE-2026-23239",
      "initial_release_date": "2026-03-10T00:00:00+00:00",
      "product_status:known_affected": "232",
      "product_status:known_not_affected": "42",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: Kernel: Race condition in espintcp can lead to denial of service",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-23239.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-11T01:37:43Z",
      "cve": "CVE-2026-23239",
      "id": "CVE-2026-23239",
      "initial_release_date": "2026-03-11T00:27:37Z",
      "product_status:first_fixed": "2",
      "product_status:known_affected": "429",
      "product_status:known_not_affected": "177",
      "product_status:recommended": "476",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-23239",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-23239.json",
      "version": "32"
    }
  }
}



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…