On 08.04.21 11:55, Michael Brown wrote:
On 08/04/2021 10:41, Marvin Häuser wrote:
No, backwards-compatibility will not be broken in the sense that the old API is absent or malfunctioning.

Perfect. :)

As I *have* said, I imagine there to be an option (default true) to expose both variants.

Very much less perfect.  The mere existence of such an option immediately reimposes the burden on external code to support both, because it opens up the possibility of running on systems where the option is set to false.

One more time, I do not know why any non-platform code would call those APIs. Preferably, they would be private implementation details to me. I understand that you are displeased with your maintenance burden in iPXE, and I can assure you, you are not alone. We want to support hotswap with one of our UEFI applications, and I am currently contemplating overriding Uninstall(Multiple)ProtocolInterface(s) to try to ensure security. I hear you, totally. :)

With default settings, I want the loader to be at the very least mostly plug-'n'-play with existing platform drivers and OS loaders from the real world. "Mostly" can be clarified further once we have a detailed plan on the changes (and responses to e.g. malformed binary issues with iPXE and GNU-EFI).

Yes; thank you for https://github.com/ipxe/ipxe/pull/313.  It will take some time to review.

As a practical consideration: unless there is a security reason to do otherwise, you should almost certainly relax the constraints on images that your loader will accept, to avoid causing unnecessary end-user disruption.  What is the *security* reason behind your alignment requirements (which clearly are not required by any other toolchain, including those used for signing Secure Boot binaries)?

Sorry if that was not clear from the PR, I hoped it was. It's the fact that memory permissions can only be enforced page-wise. So, when two sections with different permissions share a page, at the very least this page must be applied with relaxed permissions. I do not like relaxing permissions. :)

There already is a PCD to relax this, and both iPXE and GNU-EFI images load correctly and securely with it. Just the more relaxed loading is, the more awkward cases need to be considered when applying memory permission attributes. Logically, as the original ELF was correctly aligned segment-wise, the case I described above will not really happen. Yet it is now the firmware's burden to check all sections with overlapping pages for their attributes and adjust. As, please do not take this offensively, it is "only" iPXE images and the GNU shim loader affected so far, I hope that in due time all images can be updated (the shim can be used for older releases of any distribution as well!) and the constraints be tightened. Yet, of course, this is up to the EDK II maintainers to decide.

I furthermore hope that, at some point, both iPXE and shim switch to EDK II for PE generation to ensure consistency of the binary generation.

Best regards,
Marvin


Thanks,

Michael








-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#73840): https://edk2.groups.io/g/devel/message/73840
Mute This Topic: https://groups.io/mt/81853302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to