CVE-2026-90307 (GCVE-0-2026-90307)

Vulnerability from cvelistv5 – Published: 2026-09-17 16:08 – Updated: 2026-09-17 16:08
VLAI
Title
RDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ
Summary
In the Linux kernel, the following vulnerability has been resolved: RDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ srp_recv_done() passes wc->byte_len to srp_process_rsp(). It passes nothing to srp_process_cred_req() and srp_process_aer_req(), which read fixed-size fields from the receive buffer without checking that those fields were received. The buffer size is max_ti_iu_len, which comes from the login response and is not validated. A target that advertises 8 and then sends an 8-byte SRP_CRED_REQ makes the initiator read req->tag from beyond the end of the buffer. req->tag is copied into the SRP_CRED_RSP and sent back, so those bytes reach the target. SRP_AER_REQ behaves the same way and also reads req->lun. The leak is 8 bytes per response. max_ti_iu_len also decides which slab cache the buffer comes from. With 8 the buffer is a kmalloc-8 object and the read is entirely outside it: BUG: KASAN: slab-out-of-bounds in srp_recv_done+0x172b/0x1aa0 Read of size 8 at addr ffff888104714da8 by task kworker/u8:3/50 which belongs to the cache kmalloc-8 of size 8 The buggy address is located 0 bytes to the right of allocated 8-byte region [ffff888104714da0, ffff888104714da8) Without KASAN the returned bytes are whatever is next in the slab. One run returned ".strtab". rsp->data[3] in srp_process_rsp() has the same problem: only resp_data_len is checked before it is read. Drop a request that is shorter than the structure being parsed, and check byte_len before the tsk_mgmt read.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < 3f7fdf561f1ec3b523c39708df00bd808671668d (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < 138eb2f0ef02adfe6ad126afad5b54c56b5046ee (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < 3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7 (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < 0e7ba617514902501514d577647d866e670dad90 (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < 001adf2fe87d1ab677c014a97467bbea5153ae5f (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < fa1b33fdab3e79dce83721ead3220200a2dbec22 (git)
Affected: bb12588a38e6db85e01dceadff7bc161fc92e7d2 , < 961ac0f0c5e414abdd6b33fae84b311d9fde0bd0 (git)
guessed Create a notification for this product.
Linux Linux Affected: 2.6.37
Unaffected: 0 , < 2.6.37 (semver)
Unaffected: 5.10.270 , ≤ 5.10.* (semver)
Unaffected: 5.15.221 , ≤ 5.15.* (semver)
Unaffected: 6.1.188 , ≤ 6.1.* (semver)
Unaffected: 6.6.157 , ≤ 6.6.* (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 6.18.52 , ≤ 6.18.* (semver)
Unaffected: 7.2.6 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/infiniband/ulp/srp/ib_srp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3f7fdf561f1ec3b523c39708df00bd808671668d",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "138eb2f0ef02adfe6ad126afad5b54c56b5046ee",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "0e7ba617514902501514d577647d866e670dad90",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "001adf2fe87d1ab677c014a97467bbea5153ae5f",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "fa1b33fdab3e79dce83721ead3220200a2dbec22",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            },
            {
              "lessThan": "961ac0f0c5e414abdd6b33fae84b311d9fde0bd0",
              "status": "affected",
              "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/infiniband/ulp/srp/ib_srp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.37"
            },
            {
              "lessThan": "2.6.37",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.270",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.52",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "2.6.37",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ\n\nsrp_recv_done() passes wc-\u003ebyte_len to srp_process_rsp(). It passes\nnothing to srp_process_cred_req() and srp_process_aer_req(), which read\nfixed-size fields from the receive buffer without checking that those\nfields were received.\n\nThe buffer size is max_ti_iu_len, which comes from the login response\nand is not validated. A target that advertises 8 and then sends an\n8-byte SRP_CRED_REQ makes the initiator read req-\u003etag from beyond the\nend of the buffer. req-\u003etag is copied into the SRP_CRED_RSP and sent\nback, so those bytes reach the target. SRP_AER_REQ behaves the same way\nand also reads req-\u003elun.\n\nThe leak is 8 bytes per response. max_ti_iu_len also decides which slab\ncache the buffer comes from. With 8 the buffer is a kmalloc-8 object and\nthe read is entirely outside it:\n\n  BUG: KASAN: slab-out-of-bounds in srp_recv_done+0x172b/0x1aa0\n  Read of size 8 at addr ffff888104714da8 by task kworker/u8:3/50\n   which belongs to the cache kmalloc-8 of size 8\n  The buggy address is located 0 bytes to the right of\n   allocated 8-byte region [ffff888104714da0, ffff888104714da8)\n\nWithout KASAN the returned bytes are whatever is next in the slab. One\nrun returned \".strtab\".\n\nrsp-\u003edata[3] in srp_process_rsp() has the same problem: only\nresp_data_len is checked before it is read.\n\nDrop a request that is shorter than the structure being parsed, and\ncheck byte_len before the tsk_mgmt read."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-17T16:08:29.045Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3f7fdf561f1ec3b523c39708df00bd808671668d"
        },
        {
          "url": "https://git.kernel.org/stable/c/138eb2f0ef02adfe6ad126afad5b54c56b5046ee"
        },
        {
          "url": "https://git.kernel.org/stable/c/3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7"
        },
        {
          "url": "https://git.kernel.org/stable/c/0e7ba617514902501514d577647d866e670dad90"
        },
        {
          "url": "https://git.kernel.org/stable/c/001adf2fe87d1ab677c014a97467bbea5153ae5f"
        },
        {
          "url": "https://git.kernel.org/stable/c/dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd"
        },
        {
          "url": "https://git.kernel.org/stable/c/fa1b33fdab3e79dce83721ead3220200a2dbec22"
        },
        {
          "url": "https://git.kernel.org/stable/c/961ac0f0c5e414abdd6b33fae84b311d9fde0bd0"
        }
      ],
      "title": "RDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90307",
    "datePublished": "2026-09-17T16:08:29.045Z",
    "dateReserved": "2026-09-11T19:38:34.800Z",
    "dateUpdated": "2026-09-17T16:08:29.045Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90307",
      "date": "2026-09-29",
      "epss": "0.0021",
      "percentile": "0.10141"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-24T01:17:09.000Z",
      "cve": "CVE-2026-90307",
      "id": "msrc_CVE-2026-90307",
      "initial_release_date": "2026-09-19T01:06:06.000Z",
      "product_status:fixed": "1",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "RDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-90307.json",
      "version": "4"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/infiniband/ulp/srp/ib_srp.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "3f7fdf561f1ec3b523c39708df00bd808671668d",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "138eb2f0ef02adfe6ad126afad5b54c56b5046ee",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0e7ba617514902501514d577647d866e670dad90",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "001adf2fe87d1ab677c014a97467bbea5153ae5f",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "fa1b33fdab3e79dce83721ead3220200a2dbec22",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "961ac0f0c5e414abdd6b33fae84b311d9fde0bd0",
                    "status": "affected",
                    "version": "bb12588a38e6db85e01dceadff7bc161fc92e7d2",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/infiniband/ulp/srp/ib_srp.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "2.6.37"
                  },
                  {
                    "lessThan": "2.6.37",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.270",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.221",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.188",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.157",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.110",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.52",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.6",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srp: fix heap information leak on a truncated SRP_CRED_REQ\n\nsrp_recv_done() passes wc-\u003ebyte_len to srp_process_rsp(). It passes\nnothing to srp_process_cred_req() and srp_process_aer_req(), which read\nfixed-size fields from the receive buffer without checking that those\nfields were received.\n\nThe buffer size is max_ti_iu_len, which comes from the login response\nand is not validated. A target that advertises 8 and then sends an\n8-byte SRP_CRED_REQ makes the initiator read req-\u003etag from beyond the\nend of the buffer. req-\u003etag is copied into the SRP_CRED_RSP and sent\nback, so those bytes reach the target. SRP_AER_REQ behaves the same way\nand also reads req-\u003elun.\n\nThe leak is 8 bytes per response. max_ti_iu_len also decides which slab\ncache the buffer comes from. With 8 the buffer is a kmalloc-8 object and\nthe read is entirely outside it:\n\n  BUG: KASAN: slab-out-of-bounds in srp_recv_done+0x172b/0x1aa0\n  Read of size 8 at addr ffff888104714da8 by task kworker/u8:3/50\n   which belongs to the cache kmalloc-8 of size 8\n  The buggy address is located 0 bytes to the right of\n   allocated 8-byte region [ffff888104714da0, ffff888104714da8)\n\nWithout KASAN the returned bytes are whatever is next in the slab. One\nrun returned \".strtab\".\n\nrsp-\u003edata[3] in srp_process_rsp() has the same problem: only\nresp_data_len is checked before it is read.\n\nDrop a request that is shorter than the structure being parsed, and\ncheck byte_len before the tsk_mgmt read."
          }
        ],
        "id": "CVE-2026-90307",
        "lastModified": "2026-09-17T17:17:28.377",
        "metrics": {},
        "published": "2026-09-17T17:17:28.377",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/001adf2fe87d1ab677c014a97467bbea5153ae5f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0e7ba617514902501514d577647d866e670dad90"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/138eb2f0ef02adfe6ad126afad5b54c56b5046ee"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/3f7fdf561f1ec3b523c39708df00bd808671668d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/961ac0f0c5e414abdd6b33fae84b311d9fde0bd0"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/fa1b33fdab3e79dce83721ead3220200a2dbec22"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…

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…