A flaw was found in grub2. When reading data from a jfs filesystem, grub's jfs filesystem module uses user-controlled parameters from the filesystem geometry to determine the internal buffer size, however, it improperly checks for integer overflows. A maliciouly crafted filesystem may lead some of those buffer size calculations to overflow, causing it to perform a grub_malloc() operation with a smaller size than expected. As a result, the grub_jfs_lookup_symlink() function will write past the internal buffer length during grub_jfs_read_file(). This issue can be leveraged to corrupt grub's internal critical data and may result in arbitrary code execution, by-passing secure boot protections.
Workaround:
The product writes data past the end, or before the beginning, of the intended buffer.
Link | Tags |
---|---|
https://access.redhat.com/security/cve/CVE-2025-0685 | vdb entry |
https://bugzilla.redhat.com/show_bug.cgi?id=2346120 | issue tracking |