Skip to content
Heist/ feed
Back to feed
UnratedFix available

svcrdma: Reject oversized Read segments at decode time

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject oversized Read segments at decode time The RPC/RDMA Read list decoder stores wire-supplied segment lengths without validation. xdr_count_read_segments() checks 4-byte alignment for non-zero position values but does not cap the segment length. An oversized rs_length reaches svc_rdma_build_read_segment(), which derives nr_bvec from it and can drive a large dynamic bvec allocation before verifying that enough rq_pages remain. If the post-allocation page-overrun guard fires, the freshly acquired rw context is not returned, leaking the resource. Reject any segment whose length exceeds the receive context's page budget during Read list decoding, consistent with how xdr_check_write_chunk() bounds Write segment counts against rc_maxpages. Also return the rw context on the existing post-allocation overrun path in svc_rdma_build_read_segment(), keeping that defensive guard balanced.

Products
Kernel
Affected versions
Not specified
Fixed versions
7.2.4
CVEs
CVE-2026-89529
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 02:40 UTC · Revision 1

Source evidence

svcrdma: Reject oversized Read segments at decode time

core-osv · Original source

Published 11 Sept 2026, 19:44 UTC

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject oversized Read segments at decode time The RPC/RDMA Read list decoder stores wire-supplied segment lengths without validation. xdr_count_read_segments() checks 4-byte alignment for non-zero position values but does not cap the segment length. An oversized rs_length reaches svc_rdma_build_read_segment(), which derives nr_bvec from it and can drive a large dynamic bvec allocation before verifying that enough rq_pages remain. If the post-allocation page-overrun guard fires, the freshly acquired rw context is not returned, leaking the resource. Reject any segment whose length exceeds the receive context's page budget during Read list decoding, consistent with how xdr_check_write_chunk() bounds Write segment counts against rc_maxpages. Also return the rw context on the existing post-allocation overrun path in svc_rdma_build_read_segment(), keeping that defensive guard balanced.

osv:CVE-2026-89529

Kernel

Fixed versions: 7.2.4

Complete source record
{
  "id": "47ccaa8750e41f8668a74deeea11138df042938861f601d8533e11aaf6066283",
  "url": "https://osv.dev/vulnerability/CVE-2026-89529",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "svcrdma: Reject oversized Read segments at decode time",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject oversized Read segments at decode time The RPC/RDMA Read list decoder stores wire-supplied segment lengths without validation. xdr_count_read_segments() checks 4-byte alignment for non-zero position values but does not cap the segment length. An oversized rs_length reaches svc_rdma_build_read_segment(), which derives nr_bvec from it and can drive a large dynamic bvec allocation before verifying that enough rq_pages remain. If the post-allocation page-overrun guard fires, the freshly acquired rw context is not returned, leaking the resource. Reject any segment whose length exceeds the receive context's page budget during Read list decoding, consistent with how xdr_check_write_chunk() bounds Write segment counts against rc_maxpages. Also return the rw context on the existing post-allocation overrun path in svc_rdma_build_read_segment(), keeping that defensive guard balanced.",
    "evidence": "osv:CVE-2026-89529",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "7.2.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-89529",
      "aliases": [
        "CVE-2026-89529"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5ee62b4a91137557ee4b09d1604f1dfd0b4344a8"
                },
                {
                  "fixed": "5120fe54e0e2f5b62797a432115cc61d61117a5b"
                },
                {
                  "fixed": "af6f0e06bed818ee7fc8b869915964410020a1c5"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89529.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "7.0.0"
                },
                {
                  "fixed": "7.2.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89529.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:46.179387898Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/5120fe54e0e2f5b62797a432115cc61d61117a5b",
        "https://git.kernel.org/stable/c/af6f0e06bed818ee7fc8b869915964410020a1c5",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89529.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-89529",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89529.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-89529",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 514360,
  "published_at": "2026-09-11T19:44:09.259+00:00"
}