Skip Navigation

What the fuck is an SBAT and why does everyone suddenly care

Follow up to: “Something has gone seriously wrong,” dual-boot systems warn after Microsoft update

SBAT was developed collaboratively between the Linux community and Microsoft, and Microsoft chose to push a Windows update that told systems not to trust versions of grub with a security generation below a certain level. This was because those versions of grub had genuine security vulnerabilities that would allow an attacker to compromise the Windows secure boot chain, and we've seen real world examples of malware wanting to do that (Black Lotus did so using a vulnerability in the Windows bootloader, but a vulnerability in grub would be just as viable for this). Viewed purely from a security perspective, this was a legitimate thing to want to do.

...

The problem we've ended up in is that several Linux distributions had not shipped versions of grub with a newer security generation, and so those versions of grub are assumed to be insecure (it's worth noting that grub is signed by individual distributions, not Microsoft, so there's no externally introduced lag here). Microsoft's stated intention was that Windows Update would only apply the SBAT update to systems that were Windows-only, and any dual-boot setups would instead be left vulnerable to attack until the installed distro updated its grub and shipped an SBAT update itself. Unfortunately, as is now obvious, that didn't work as intended and at least some dual-boot setups applied the update and that distribution's Shim refused to boot that distribution's grub.

...

The outcome is that some people can't boot their systems. I think there's plenty of blame here. Microsoft should have done more testing to ensure that dual-boot setups could be identified accurately. But also distributions shipping signed bootloaders should make sure that they're updating those and updating the security generation to match, because otherwise they're shipping a vector that can be used to attack other operating systems and that's kind of a violation of the social contract around all of this.

Linux @programming.dev

What the fuck is an SBAT and why does everyone suddenly care

32 0
Hacker News @lemmy.smeargle.fans

What is an SBAT and why does everyone suddenly care

5 0
33 comments
  • that's kind of a violation of the social contract around all of this.

    What an interesting journey to the conclusion that it's not the fucking around with non-Microsoft bootloaders that's wrong, it's the installing of bootloaders that aren't approved by Microsoft. That must be somewhere in the Microsoft social EULA you automatically agreed to when you chose to live in a society.

    Somebody please tell me which specific CVEs Debian failed to account for in their many grub security updates.

    • It's upstream GRUB that's decided the older GRUB versions are insecure and not to be trusted. Microsoft just propagated that to machines running distros that weren't shipping patched GRUB builds yet. Up-to-date Debian wouldn't be affected provided that they downstreamed fixes quickly.

      https://fedia.io/m/linux@lemmy.ml/t/1111595/-/comment/6916699 says that Debian's GRUB wasn't affected, but another part of the boot sequence was.

  • Update: According to various indications around the net it turns out that the problem (for Debian users at least) is not grub at all, it's shim itself. They did update the grub SBAT level in a way that should satisfy Microsoft's demands when they patched the CVE that everyone seems to be pointing to as the one Microsoft was aiming for.

    What they didn't do in time is update shim (possibly related to CVE-2022-28737, I'm not sure.) There is a new version which has the required change but it has not yet made it to Debian stable. Microsoft added an SBAT for shim as well (which gets checked by shim, so if it's broken... uh... anyway, it's probably fine) and it's the one causing the problems.

    (Edited to reflect that I don't really know if it was the fix for CVE-2022-28737 that was needed, the SBAT variable update related to that, or something else. Whichever it is, the shim update currently in the bookworm proposed updates queue should have it.)

33 comments