Dear maintainer,

I have also run into this bug, in the same version of grub 
(2.02+dfsg1-20+deb10u4).

As *any* change to the LVM configuration can trigger the bug, rendering the 
system unbootable, this is a ticking bomb for users of LVM. IMO the severity of 
this bug should be increased to critical.

I did some investigation, and the cause is an incorrect computation of mda_end 
when the metadata area wraps around.

The following patch fixes the problem:
---------------------------------------------------
Index: grub2-2.02+dfsg1/grub-core/disk/lvm.c
===================================================================
--- grub2-2.02+dfsg1.orig/grub-core/disk/lvm.c
+++ grub2-2.02+dfsg1/grub-core/disk/lvm.c
@@ -253,7 +253,7 @@ error_parsing_metadata:

   p = q = (char *)ptr;

-  if (grub_add ((grub_size_t)metadatabuf, (grub_size_t)mda_size, &ptr))
+  if (grub_add (ptr, (grub_size_t)grub_le_to_cpu64 (rlocn->size), &ptr))
     goto error_parsing_metadata;

   mda_end = (char *)ptr;
----------------------------------------------------

I checked the sources of grub2-2.04 in bullseye, and the code in question looks 
exactly the same, so this same bug is also present in bullseye and testing.

Kind regards,

Rogier.

Reply via email to