The culprit purportedly comes from a customer PE loader, which allows any UEFI binary to be loaded, even unsigned ones.
They don’t even have to be signed…
Here is an example of something similar that disables Windows Platform Binary Table…(I’m not advocating that anybody actually use this).
WPBT is another terrible ‘feature’ of UEFI/windows that lets motherboard manufacturers install their bloatware even on fresh installs of the OS. First boot of a fresh OS the app will already be installed. Uninstall it and reboot…installed again. You literally need to dig through their bios options to tell it to stop. They usually make that quite the process too. Bios update? You can almost guarantee they turned it back on and probably relocated it in the menus.
Yeah. My understanding is that Microsoft has signed several tools made by other companies that boot as UEFI PE executables and aren’t supposed to allow loading arbitrary (including unsigned and malicious) UEFI PE binaries, but due to security vulnerabilities in the tool, they’ll load any old UEFI PE binary you give them.
The payload/malicious UEFI PE binaries don’t have to be signed. But the third-party tools that contain the vulnerabilities have to be signed by a signer your UEFI firmware trusts. (And the tools are signed by Microsoft, which your UEFI firmware almost definitely trusts, unless you’ve already applied a fix).
(And I don’t know exactly what sort of tools they are. Maybe they’re like UEFI Shell software or something? Not sure. Not sure it matters that much for purposes of understanding the impact or remediation strategy for this vulnerability.)
The fix, I’d imagine is:
Everyone should untrust the certificates used to sign those vulnerable tools. (And by “untrust”, I really mean they need to apply the revocations.)
Microsoft needs to issue new certificates to replace the ones with which they signed the vulnerable tools.
The companies who made those tools need to release new, fixed, not-vulnerable versions of the same tools.
…and get Microsoft to sign those new versions with the replacement keys.
And users need to migrate from the vulnerable versions to the new versions of the tools in question.
Now, I’m not 100% sure if there needs to be yet another step in there where individual users explicitly install/trust the replacement certs. Those replacement certs are signed by Microsoft’s root certificate, right? As long as all the certificates in the chain from the root certifcate down to the signature are included with the UEFI PE binary, the firmware should be able to verify the new binary? Or maybe having chains of certs is not how UEFI PE binaries work. Not sure.
Here is an example of something similar that disables Windows Platform Binary Table…(I’m not advocating that anybody actually use this).
Yuck. Thanks for letting me know of that. I’m still firmly in the “learning” phase when it comes to this UEFI stuff. It’s good to be aware of this.
They don’t even have to be signed…
Here is an example of something similar that disables Windows Platform Binary Table…(I’m not advocating that anybody actually use this).
WPBT is another terrible ‘feature’ of UEFI/windows that lets motherboard manufacturers install their bloatware even on fresh installs of the OS. First boot of a fresh OS the app will already be installed. Uninstall it and reboot…installed again. You literally need to dig through their bios options to tell it to stop. They usually make that quite the process too. Bios update? You can almost guarantee they turned it back on and probably relocated it in the menus.
It’s like people never learned from the Lenovo Superfish inicdent
Yeah. My understanding is that Microsoft has signed several tools made by other companies that boot as UEFI PE executables and aren’t supposed to allow loading arbitrary (including unsigned and malicious) UEFI PE binaries, but due to security vulnerabilities in the tool, they’ll load any old UEFI PE binary you give them.
The payload/malicious UEFI PE binaries don’t have to be signed. But the third-party tools that contain the vulnerabilities have to be signed by a signer your UEFI firmware trusts. (And the tools are signed by Microsoft, which your UEFI firmware almost definitely trusts, unless you’ve already applied a fix).
(And I don’t know exactly what sort of tools they are. Maybe they’re like UEFI Shell software or something? Not sure. Not sure it matters that much for purposes of understanding the impact or remediation strategy for this vulnerability.)
The fix, I’d imagine is:
Now, I’m not 100% sure if there needs to be yet another step in there where individual users explicitly install/trust the replacement certs. Those replacement certs are signed by Microsoft’s root certificate, right? As long as all the certificates in the chain from the root certifcate down to the signature are included with the UEFI PE binary, the firmware should be able to verify the new binary? Or maybe having chains of certs is not how UEFI PE binaries work. Not sure.
Yuck. Thanks for letting me know of that. I’m still firmly in the “learning” phase when it comes to this UEFI stuff. It’s good to be aware of this.