Rather than disabling secure boot, another option is to boot a recent Ubuntu LiveUSB ISO (24.10 worked for me) and update the Shim binary to version 15.8 or later.
Instructions copied from https://askubuntu.com/a/1533802/879530
Check efibootmgr -v so see what your boot order is, and which EFI path is executed. For me, this was /boot/efi/EFI/ubuntu/shimx64.efi, but if your install is on a removable drive it might be /boot/efi/EFI/boot/bootx64.efi (if you are running systemd-boot or Debian or something else then look in /boot/efi/EFI/*).
You may have to mount your EFI/EFS partition, first find the appropriate partition of type FAT32, typically around 300MB to 500MB:
sudo fdisk -l
If you are using an NVMe drive, it will typically be /dev/nvme0n1p0, otherwise for SATA drives it might be /dev/sda1.
Then mount the EFI partition so that you can access it:
For NVMe drives:
sudo mount /dev/nvme0n1p0 /boot/efi
Or for SATA Drives:
sudo mount /dev/sda1 /boot/efi
To check the version of the installed Shim, run:
# strings /boot/efi/EFI/ubuntu/shimx64.efi | grep '$Version:'
$Version: 15.7 $
If the version is 15.7 (as above), then you must upgrade to 15.8. You can do this automatically by upgrading the shim with apt from the LiveUSB:
apt update
apt install --reinstall shim-signed
Then manually copy the newer shim over the old one:
# cp /boot/efi/EFI/ubuntu/shimx64.efi /boot/efi/EFI/ubuntu/shimx64.efi.old
# cp /usr/lib/shim/shimx64.efi.signed /boot/efi/EFI/ubuntu/shimx64.efi
Now check the Shim version:
# strings /boot/efi/EFI/ubuntu/shimx64.efi | grep '$Version:'
$Version: 15.8 $
If you mounted the EFI partition earlier, be sure to unmount it before rebooting:
sudo umount /boot/efi
Reboot and now the bad shim signature error should be gone.
Additional details
The SBAT list was updated by Microsoft on 20th August 2024 to block Shim version 15.7 because of the CVE-2023-40547 remote code execution vulnerability. The solution to this is to upgrade Shim to the latest version 15.8. Additional details or alternative solutions might be available in this thread: Verifying shim SBAT data failed: Security Policy Violation