HomeFreeBSD

geom_linux_lvm: Check the offset of physical volume header

Description

geom_linux_lvm: Check the offset of physical volume header

The LVM label is stored on any of the first four sectors, and the
PV (physical volume) header is stored within the same sector following
the LVM label. The current implementation does not fully check the
offset of PV header, when attaching a bad formatted LVM PV the kernel
may crash due to out-of-bounds memory read.

PR: 266562
Reviewed by: jhb
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D36773

(cherry picked from commit c941b82e1c31a67a025c43cc7bd31f269fa62588)
(cherry picked from commit 809450c4b53109b6ca8a87054452f2b3b8f711aa)

Details

Provenance
zleiAuthored on Aug 22 2023, 9:20 AM
Reviewer
jhb
Differential Revision
D36773: geom_linux_lvm: Check the offset of physical volume header
Parents
rG8fdb1181ab8d: geom_part: Fix potential integer overflow when checking size of the table
Branches
Unknown
Tags
Unknown