← Back to CVE Explorer

CVE-2026-90150

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: pnfs/blocklayout: Fix device leaks on parse failure bl_parse_concat() and bl_parse_stripe() allocate a child device array and then parse each child in turn. If parsing a child fails, the failed child is not counted in nr_children and the parent may be left with a children array that bl_free_device() will not release when nr_children is zero. Release the failed child and the already parsed children before returning the error. Also make bl_free_device() release the child array whenever the children pointer is set, so that partially initialised concat or stripe devices are cleaned up correctly. bl_parse_scsi() can also fail after assigning d->bdev_file and dropping the file reference. Clear the pointer after fput() so that an outer cleanup path does not put it again.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-17 17:17:07.943000
Last modified
2026-10-30 13:20:43.603000
View original CVE JSON
{
  "id": "CVE-2026-90150",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-17T17:17:07.943",
  "lastModified": "2026-10-30T13:20:43.603",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npnfs/blocklayout: Fix device leaks on parse failure\n\nbl_parse_concat() and bl_parse_stripe() allocate a child device array and\nthen parse each child in turn.  If parsing a child fails, the failed child is\nnot counted in nr_children and the parent may be left with a children array\nthat bl_free_device() will not release when nr_children is zero.\n\nRelease the failed child and the already parsed children before returning the\nerror.  Also make bl_free_device() release the child array whenever the\nchildren pointer is set, so that partially initialised concat or stripe\ndevices are cleaned up correctly.\n\nbl_parse_scsi() can also fail after assigning d->bdev_file and dropping the\nfile reference.  Clear the pointer after fput() so that an outer cleanup path\ndoes not put it again."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "fs/nfs/blocklayout/dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
              "lessThan": "710ae187a5d490a894054d17645cf5c83d37dfbf",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
              "lessThan": "51d162dfb618f6cf3aa5e331c0305e27771ad884",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
              "lessThan": "8a2494964edac2a13e82441c2bf887548dc3be0b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
              "lessThan": "1e1c36b206c659cf94c6755a1d821ed1babd32bc",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
              "lessThan": "23e4162405c456ce12c772d5882d306135e828ae",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5c83746a0cf2831d4b59f5cf99ef5fbf138564e4",
              "lessThan": "c056f817e4200fb18079d5052c273a22f191ff0a",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "fs/nfs/blocklayout/dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "3.18",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "3.18",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.160",
              "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/1e1c36b206c659cf94c6755a1d821ed1babd32bc",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/23e4162405c456ce12c772d5882d306135e828ae",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/51d162dfb618f6cf3aa5e331c0305e27771ad884",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/710ae187a5d490a894054d17645cf5c83d37dfbf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8a2494964edac2a13e82441c2bf887548dc3be0b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c056f817e4200fb18079d5052c273a22f191ff0a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}