pnfs/blocklayout: Fix device leaks on parse failure
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.110, 6.18.52, 7.2.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
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 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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 · fixed in 51d162dfb618f6cf3aa5e331c0305e27771ad884; From 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 · fixed in 8a2494964edac2a13e82441c2bf887548dc3be0b; From 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 · fixed in 1e1c36b206c659cf94c6755a1d821ed1babd32bc; From 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 · fixed in 23e4162405c456ce12c772d5882d306135e828ae; From 5c83746a0cf2831d4b59f5cf99ef5fbf138564e4 · fixed in c056f817e4200fb18079d5052c273a22f191ff0a
- Linux Linux
3.18
- KernelLinux
From 3.18.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6