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

CVE-2023-54269 (GCVE-0-2023-54269)

Vulnerability from cvelistv5 – Published: 2025-12-30 12:16 – Updated: 2026-08-05 09:18
VLAI
Title
SUNRPC: double free xprt_ctxt while still in use
Summary
In the Linux kernel, the following vulnerability has been resolved: SUNRPC: double free xprt_ctxt while still in use When an RPC request is deferred, the rq_xprt_ctxt pointer is moved out of the svc_rqst into the svc_deferred_req. When the deferred request is revisited, the pointer is copied into the new svc_rqst - and also remains in the svc_deferred_req. In the (rare?) case that the request is deferred a second time, the old svc_deferred_req is reused - it still has all the correct content. However in that case the rq_xprt_ctxt pointer is NOT cleared so that when xpo_release_xprt is called, the ctxt is freed (UDP) or possible added to a free list (RDMA). When the deferred request is revisited for a second time, it will reference this ctxt which may be invalid, and the free the object a second time which is likely to oops. So change svc_defer() to *always* clear rq_xprt_ctxt, and assert that the value is now stored in the svc_deferred_req.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: f5e13d700a4d40ccde3d36e383f9247dcb3c1d2d , < 7851771789e87108a92697194105ef0c9307dc5e (git)
Affected: 773f91b2cf3f52df0d7508fdbf60f37567cdaee4 , < fd86534872f445f54dc01e7db001e25eadf063a8 (git)
Affected: 773f91b2cf3f52df0d7508fdbf60f37567cdaee4 , < e0c648627322a4c7e018e5c7f837c3c03e297dbb (git)
Affected: 773f91b2cf3f52df0d7508fdbf60f37567cdaee4 , < eb8d3a2c809abd73ab0a060fe971d6b9019aa3c1 (git)
Affected: 11fab500f86403b2ebf6795feeade6e10302e448 (git)
Affected: 5.15.35 , < 5.15.113 (semver)
Affected: 5.17.4 , < 5.18 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 5.18
Unaffected: 0 , < 5.18 (semver)
Unaffected: 5.15.113 , ≤ 5.15.* (semver)
Unaffected: 6.1.30 , ≤ 6.1.* (semver)
Unaffected: 6.3.4 , ≤ 6.3.* (semver)
Unaffected: 6.4 , ≤ * (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/sunrpc/svc_xprt.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "7851771789e87108a92697194105ef0c9307dc5e",
              "status": "affected",
              "version": "f5e13d700a4d40ccde3d36e383f9247dcb3c1d2d",
              "versionType": "git"
            },
            {
              "lessThan": "fd86534872f445f54dc01e7db001e25eadf063a8",
              "status": "affected",
              "version": "773f91b2cf3f52df0d7508fdbf60f37567cdaee4",
              "versionType": "git"
            },
            {
              "lessThan": "e0c648627322a4c7e018e5c7f837c3c03e297dbb",
              "status": "affected",
              "version": "773f91b2cf3f52df0d7508fdbf60f37567cdaee4",
              "versionType": "git"
            },
            {
              "lessThan": "eb8d3a2c809abd73ab0a060fe971d6b9019aa3c1",
              "status": "affected",
              "version": "773f91b2cf3f52df0d7508fdbf60f37567cdaee4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "11fab500f86403b2ebf6795feeade6e10302e448",
              "versionType": "git"
            },
            {
              "lessThan": "5.15.113",
              "status": "affected",
              "version": "5.15.35",
              "versionType": "semver"
            },
            {
              "lessThan": "5.18",
              "status": "affected",
              "version": "5.17.4",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sunrpc/svc_xprt.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.18"
            },
            {
              "lessThan": "5.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.113",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.30",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.3.*",
              "status": "unaffected",
              "version": "6.3.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.4",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.113",
                  "versionStartIncluding": "5.15.35",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.30",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3.4",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.17.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: double free xprt_ctxt while still in use\n\nWhen an RPC request is deferred, the rq_xprt_ctxt pointer is moved out\nof the svc_rqst into the svc_deferred_req.\nWhen the deferred request is revisited, the pointer is copied into\nthe new svc_rqst - and also remains in the svc_deferred_req.\n\nIn the (rare?) case that the request is deferred a second time, the old\nsvc_deferred_req is reused - it still has all the correct content.\nHowever in that case the rq_xprt_ctxt pointer is NOT cleared so that\nwhen xpo_release_xprt is called, the ctxt is freed (UDP) or possible\nadded to a free list (RDMA).\nWhen the deferred request is revisited for a second time, it will\nreference this ctxt which may be invalid, and the free the object a\nsecond time which is likely to oops.\n\nSo change svc_defer() to *always* clear rq_xprt_ctxt, and assert that\nthe value is now stored in the svc_deferred_req."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable path is nfsd/sunrpc server-side request processing driven entirely by RPC datagrams received from remote clients over UDP port 2049 (or NFS/RDMA). No local access is needed; the attacker only sends network packets to the NFS server.\nAC:L - The attacker controls both deferral triggers \u2014 a novel (freely spoofable) UDP source address forces an ip_map cache miss, and an unresolved export/filehandle forces a second nfsd_fh/nfsd_export miss on the same request, which is exactly the first-contact sequence for a new client. Small datagrams stay linear so rq_xprt_ctxt is populated, making the trigger repeatable at will.\nPR:N - The deferrals occur inside svcauth_unix_set_client() and the export lookup, i.e. while the server is still deciding whether the client is permitted at all, so no credentials have been verified. AUTH_NULL/AUTH_UNIX requests from any host able to reach the nfsd port suffice.\nUI:N - nfsd threads process incoming RPCs and requeue deferred requests automatically with no action by any local user or administrator.\nS:U - The corruption is confined to kernel memory managed by the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The freed sk_buff is re-read and re-released (skb-\u003eusers, skb-\u003ehead, skb-\u003edestructor) and the double free returns the same slab object to two owners, giving type-confusion-based read primitives over adjacent kernel data. Per UAF guidance this is High.\nI:H - A double free of an sk_buff lets a remote attacker who reallocates the slot with sprayed packet data control fields such as skb-\u003edestructor and skb-\u003ehead, yielding arbitrary write / control-flow hijack; the RDMA variant double-adds a recv ctxt to the free list so two live receives share one DMA buffer.\nA:H - The commit itself notes the second free \"is likely to oops\"; a double free of an sk_buff or corruption of the RDMA recv ctxt free list panics the kernel and can be re-triggered repeatedly by an unauthenticated remote client."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:18:46.870Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/7851771789e87108a92697194105ef0c9307dc5e"
        },
        {
          "url": "https://git.kernel.org/stable/c/fd86534872f445f54dc01e7db001e25eadf063a8"
        },
        {
          "url": "https://git.kernel.org/stable/c/e0c648627322a4c7e018e5c7f837c3c03e297dbb"
        },
        {
          "url": "https://git.kernel.org/stable/c/eb8d3a2c809abd73ab0a060fe971d6b9019aa3c1"
        }
      ],
      "title": "SUNRPC: double free xprt_ctxt while still in use",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-54269",
    "datePublished": "2025-12-30T12:16:00.317Z",
    "dateReserved": "2025-12-30T12:06:44.518Z",
    "dateUpdated": "2026-08-05T09:18:46.870Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-54269",
      "date": "2026-09-16",
      "epss": "0.00531",
      "percentile": "0.43573"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-54269\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-30T13:16:15.737\",\"lastModified\":\"2026-08-04T11:16:38.893\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nSUNRPC: double free xprt_ctxt while still in use\\n\\nWhen an RPC request is deferred, the rq_xprt_ctxt pointer is moved out\\nof the svc_rqst into the svc_deferred_req.\\nWhen the deferred request is revisited, the pointer is copied into\\nthe new svc_rqst - and also remains in the svc_deferred_req.\\n\\nIn the (rare?) case that the request is deferred a second time, the old\\nsvc_deferred_req is reused - it still has all the correct content.\\nHowever in that case the rq_xprt_ctxt pointer is NOT cleared so that\\nwhen xpo_release_xprt is called, the ctxt is freed (UDP) or possible\\nadded to a free list (RDMA).\\nWhen the deferred request is revisited for a second time, it will\\nreference this ctxt which may be invalid, and the free the object a\\nsecond time which is likely to oops.\\n\\nSo change svc_defer() to *always* clear rq_xprt_ctxt, and assert that\\nthe value is now stored in the svc_deferred_req.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\\n\\nSUNRPC: doble liberaci\u00f3n de xprt_ctxt mientras a\u00fan est\u00e1 en uso\\n\\nCuando una solicitud RPC es diferida, el puntero rq_xprt_ctxt es movido fuera del svc_rqst hacia el svc_deferred_req.\\nCuando la solicitud diferida es revisitada, el puntero es copiado en el nuevo svc_rqst - y tambi\u00e9n permanece en el svc_deferred_req.\\n\\nEn el caso (\u00bfraro?) de que la solicitud sea diferida por segunda vez, el antiguo svc_deferred_req es reutilizado - a\u00fan tiene todo el contenido correcto.\\nSin embargo, en ese caso el puntero rq_xprt_ctxt NO es limpiado de modo que cuando se llama a xpo_release_xprt, el ctxt es liberado (UDP) o posiblemente a\u00f1adido a una lista de libres (RDMA).\\nCuando la solicitud diferida es revisitada por segunda vez, har\u00e1 referencia a este ctxt el cual puede ser inv\u00e1lido, y liberar\u00e1 el objeto por segunda vez lo que probablemente causar\u00e1 un \u0027oops\u0027.\\n\\nAs\u00ed que cambie svc_defer() para *siempre* limpiar rq_xprt_ctxt, y afirme que el valor ahora est\u00e1 almacenado en el svc_deferred_req.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/sunrpc/svc_xprt.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"f5e13d700a4d40ccde3d36e383f9247dcb3c1d2d\",\"lessThan\":\"7851771789e87108a92697194105ef0c9307dc5e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"773f91b2cf3f52df0d7508fdbf60f37567cdaee4\",\"lessThan\":\"fd86534872f445f54dc01e7db001e25eadf063a8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"773f91b2cf3f52df0d7508fdbf60f37567cdaee4\",\"lessThan\":\"e0c648627322a4c7e018e5c7f837c3c03e297dbb\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"773f91b2cf3f52df0d7508fdbf60f37567cdaee4\",\"lessThan\":\"eb8d3a2c809abd73ab0a060fe971d6b9019aa3c1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"11fab500f86403b2ebf6795feeade6e10302e448\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"5.15.35\",\"lessThan\":\"5.15.113\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"5.17.4\",\"lessThan\":\"5.18\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/sunrpc/svc_xprt.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.18\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.18\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.113\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.30\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.3.4\",\"lessThanOrEqual\":\"6.3.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.4\",\"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:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/7851771789e87108a92697194105ef0c9307dc5e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e0c648627322a4c7e018e5c7f837c3c03e297dbb\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/eb8d3a2c809abd73ab0a060fe971d6b9019aa3c1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/fd86534872f445f54dc01e7db001e25eadf063a8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T19:13:28+00:00",
      "cve": "CVE-2023-54269",
      "id": "CVE-2023-54269",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:fixed": "128",
      "product_status:known_affected": "138",
      "product_status:known_not_affected": "104",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: SUNRPC: double free xprt_ctxt while still in use",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54269.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-05T23:39:15Z",
      "cve": "CVE-2023-54269",
      "id": "CVE-2023-54269",
      "initial_release_date": "2025-12-31T00:27:04Z",
      "product_status:known_affected": "354",
      "product_status:known_not_affected": "432",
      "product_status:recommended": "245",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2023-54269",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2023-54269.json",
      "version": "24"
    }
  }
}



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…