Description
A flaw was found in grub2. When performing a symlink lookup, the grub's UFS module checks the inode's data size to allocate the internal buffer to read the file content, however, it fails to check if the symlink data size has overflown. When this occurs, grub_malloc() may be called with a smaller value than needed. When further reading the data from the disk into the buffer, the grub_ufs_lookup_symlink() function will write past the end of the allocated size. An attack can leverage this by crafting a malicious filesystem, and as a result, it will corrupt data stored in the heap, allowing for arbitrary code execution used to by-pass secure boot mechanisms.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
grub2
Default version status: unaffected
0 to ≤ 2.12affected
Red Hat Red Hat Enterprise Linux 10
Default version status: affected
1:2.12-15.el10_0 to < *unaffected
Red Hat Red Hat Enterprise Linux 9
Default version status: affected
1:2.06-104.el9_6 to < *unaffected
Red Hat Red Hat Enterprise Linux 7
Default version status: unknown
Red Hat Red Hat Enterprise Linux 8
Default version status: unknown
Red Hat Red Hat OpenShift Container Platform 4
Default version status: affected