UBUNTU-CVE-2026-90150: High severity ubuntu/linux-aws vulnerability
In the Linux kernel, the following vulnerability has been resolved: pnfs/blocklayout: Fix device leaks on parse failure blparseconcat() and blparsestripe() allocate a child device array and then parse each child in turn. If parsing a child fails, the failed child is not counted in nrchildren and the parent may be left with a children array that blfreedevice() will not release when nrchildren is zero. Release the failed child and the already parsed children before returning the error. Also make blfreedevice() release the child array whenever the children pointer is set, so that partially initialised concat or stripe devices are cleaned up correctly. blparsescsi() can also fail after assigning d->bdevfile and dropping the file reference. Clear the pointer after fput() so that an outer cleanup path does not put it again.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Fix the blocklayout cleanup paths: make bl_free_device() release the child array whenever the children pointer is set; clear the pointer after fput() to prevent an outer cleanup path from putting it again; release both the failed child and already parsed children when bl_parse_concat() or bl_parse_stripe() fails; and handle cleanup when bl_parse_scsi() fails after assigning d->bdev_file and dropping the file reference.