← Back to CVE Explorer

CVE-2026-93264

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: RDMA/efa: Fix PBL chunk length computation On register MR, when creating the PBL, if it's an indirect PBL we create a chunk list to hold the PBL pages pointers. Each chunk is 4KB in size and can hold 510 addresses (EFA_PTRS_PER_CHUNK) and has a 12-byte control buffer at the end of it holding the next chunk's pointer and its length. If the PBL number of pages is a multiple of EFA_PTRS_PER_CHUNK, the calculated last chunk length is wrongly computed as 0, even though that chunk is fully populated with 510 real page pointers. This wrong length is used both to DMA map the chunk and is propagated to the device, causing the device to see the chunk as empty and reject the memory registration. Fix the calculation so it will be performed only if the number of pages isn't a multiple of EFA_PTRS_PER_CHUNK, if it is, its already handled in the above loop correctly. Also prevent out-of-bounds reach in the chunks array in such scenario.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-24 16:17:23.193000
Last modified
2026-10-19 10:17:17.760000
View original CVE JSON
{
  "id": "CVE-2026-93264",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-24T16:17:23.193",
  "lastModified": "2026-10-19T10:17:17.760",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/efa: Fix PBL chunk length computation\n\nOn register MR, when creating the PBL, if it's an indirect PBL we create\na chunk list to hold the PBL pages pointers. Each chunk is 4KB in size\nand can hold 510 addresses (EFA_PTRS_PER_CHUNK) and has a 12-byte\ncontrol buffer at the end of it holding the next chunk's pointer and its\nlength.\n\nIf the PBL number of pages is a multiple of EFA_PTRS_PER_CHUNK, the\ncalculated last chunk length is wrongly computed as 0, even though that\nchunk is fully populated with 510 real page pointers. This wrong length\nis used both to DMA map the chunk and is propagated to the device,\ncausing the device to see the chunk as empty and reject the memory\nregistration.\n\nFix the calculation so it will be performed only if the number of pages\nisn't a multiple of EFA_PTRS_PER_CHUNK, if it is, its already handled in\nthe above loop correctly.\nAlso prevent out-of-bounds reach in the chunks array in such scenario."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/infiniband/hw/efa/efa_verbs.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "665cd418b8561a099c3854443f8ad8ae751b72a0",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "932e5684906a090644a9061fae2d254041c3b8f2",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "489b28f2377afa70c18c45b06a6387f3d39bb123",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "aadf3f9b5edb7f0a77e9172b237d2e07c754829c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "3982714e15512b83115897806dacc94899683420",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "da7805f0211af19968584e621074f253ac07dba7",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "1d4b5902773475fc97151379b7e5f09cad0fa57b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "40909f664d279765af430acc5db348a0b71c9b0a",
              "lessThan": "229b42d7450c1cf96f45ec39ebb69211b06bc036",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/infiniband/hw/efa/efa_verbs.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.2",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.2",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.270",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.221",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.188",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.157",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.110",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.52",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.6",
              "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/1d4b5902773475fc97151379b7e5f09cad0fa57b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/229b42d7450c1cf96f45ec39ebb69211b06bc036",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3982714e15512b83115897806dacc94899683420",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/489b28f2377afa70c18c45b06a6387f3d39bb123",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/665cd418b8561a099c3854443f8ad8ae751b72a0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/932e5684906a090644a9061fae2d254041c3b8f2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/aadf3f9b5edb7f0a77e9172b237d2e07c754829c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/da7805f0211af19968584e621074f253ac07dba7",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}