---
id: CVE-2026-90150
title: |-
  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
summary: |-
  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 parsin…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 <
    8a2494964edac2a13e82441c2bf887548dc3be0b
  - >-
    Linux >= 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 <
    1e1c36b206c659cf94c6755a1d821ed1babd32bc
  - >-
    Linux >= 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 <
    23e4162405c456ce12c772d5882d306135e828ae
  - >-
    Linux >= 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 <
    c056f817e4200fb18079d5052c273a22f191ff0a
  - Linux 3.18
published: '2026-09-17'
updated: '2026-09-17'
sourceUpdated: '2026-09-17T17:17:07.943'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-90150'
references:
  - url: 'https://git.kernel.org/stable/c/1e1c36b206c659cf94c6755a1d821ed1babd32bc'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/23e4162405c456ce12c772d5882d306135e828ae'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8a2494964edac2a13e82441c2bf887548dc3be0b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/c056f817e4200fb18079d5052c273a22f191ff0a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-17T16:21:47.875Z'
epss: 0.002
epssPercentile: 0.10173
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
