From: "Sean" <spbrogan@outlook.com>
To: devel@edk2.groups.io, kraxel@redhat.com
Cc: Ard Biesheuvel <ardb@kernel.org>,
Alexander Graf <agraf@csgraf.de>,
dann frazier <dann.frazier@canonical.com>,
Leif Lindholm <quic_llindhol@quicinc.com>
Subject: Re: [edk2-devel] [PATCH v3 03/16] ArmVirtPkg: make EFI_LOADER_DATA non-executable
Date: Thu, 5 Jan 2023 18:19:14 -0800 [thread overview]
Message-ID: <BY3PR19MB49007720FFAF8C5033BDFF02C8FB9@BY3PR19MB4900.namprd19.prod.outlook.com> (raw)
In-Reply-To: <20230105195836.hh3guyztbn2asyur@sirius.home.kraxel.org>
[-- Attachment #1.1: Type: text/plain, Size: 3598 bytes --]
Gerd/Ard,
This is a great topic and shows some of the challenges of tightening up
security/enforcing correctness in UEFI.
I wanted to let you know that we have been doing a lot of work in both
edk2 firmware and discussing with partners in the Linux community and PC
ecosystem. The Shim and Grub teams have been directly engaged and have
code patches that correct a number of problems as well as make their
code compliant with even tighter restrictions. Engineers from redhat,
canonical, oracle, and others have all been involved. Also note
Microsoft's UEFI CA now requires submissions to be compliant with a
strict set of memory mitigations. UEFI CA Memory Mitigation Requirements
for Signing - Windows drivers | Microsoft Learn
<https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/uefi-ca-memory-mitigation-requirements>
and UPDATED: UEFI Signing Requirements - Microsoft Community Hub
<https://techcommunity.microsoft.com/t5/hardware-dev-center/updated-uefi-signing-requirements/ba-p/1062916>.
This means any new shim submitted must now meet these requirements. How
long it takes for distros to update to a new shim is still unknown.
Hopefully sometime in the next few weeks we can prepare a comprehensive
set of patches and changes needed in edk2 to implement this strict
environment. One of the relevant changes to this discussion and patch
series is we switched the configuration from PCD to hob
(mu_basecore/DxeMemoryProtectionSettings.h at release/202208 ·
microsoft/mu_basecore (github.com)
<https://github.com/microsoft/mu_basecore/blob/release/202208/MdeModulePkg/Include/Guid/DxeMemoryProtectionSettings.h>).
This allows our platforms complete control of the config per boot. Some
platforms have compatibility requirements and have implemented code so
that when a PF is triggered by incompatible software, it is recorded and
then the system rebooted. On the next boot the platform changes the HOB
configuration to be in a more compatible mode (this mode could be
measured in a PCR and/or other hints to the user/system of degraded
security). We hope this balance makes compatibility possible but
inconvenient and with a less than desirable user experience. Will this
help move the industry, I don't know?
Anyway, rather than a patchwork of changes going into different
platforms and components of edk2 I would like to see alignment between
x86/arm64 in edk2 and a complete set of changes for edk2. We have
developed a tool and some tests that can capture the memory environment
in DXE and export it to then allow a developer to review. This has
identified dozens of problems in edk2 code as well as platform code.
See attached a report file showing a passing report for our q35 qemu
based platform. mu_tiano_platforms/Platforms/QemuQ35Pkg at main ·
microsoft/mu_tiano_platforms (github.com)
<https://github.com/microsoft/mu_tiano_platforms/tree/main/Platforms/QemuQ35Pkg>
We are still working on getting the equivalent for arm64. Happy to
discuss more if anyone else is interested.
Thanks
sean
On 1/5/2023 11:58 AM, Gerd Hoffmann wrote:
> Hi,
>
>> Tried booting grub.efi directly and via shim.efi, on Fedora 37 GA.
>>
>> In both cases I get a pagefault on linux kernel boot (before any other
>> message is printed), which I guess happens because the loader places the
>> linux kernel efi stub in EfiLoaderData memory.
> When compiling ovmf with the same pcd value I get the same behavior
> on x64, so it's consistently buggy across architectures.
>
> take care,
> Gerd
>
>
>
>
>
>
[-- Attachment #1.2: Type: text/html, Size: 4596 bytes --]
[-- Attachment #2: Q35_Paging_Audit_With_Stack_Null.html --]
[-- Type: text/html, Size: 4052714 bytes --]
next prev parent reply other threads:[~2023-01-06 2:19 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-26 8:24 [PATCH v3 00/16] ArmVirtPkg/ArmVirtQemu: Performance streamlining Ard Biesheuvel
2022-09-26 8:24 ` [PATCH v3 01/16] ArmVirtPkg: remove EbcDxe from all platforms Ard Biesheuvel
2022-09-26 8:24 ` [PATCH v3 02/16] ArmVirtPkg: do not enable iSCSI driver by default Ard Biesheuvel
2022-09-26 8:24 ` [PATCH v3 03/16] ArmVirtPkg: make EFI_LOADER_DATA non-executable Ard Biesheuvel
2022-09-26 22:28 ` [edk2-devel] " Leif Lindholm
2022-11-28 15:46 ` Gerd Hoffmann
2022-12-29 18:00 ` dann frazier
2023-01-03 9:59 ` Ard Biesheuvel
2023-01-03 19:39 ` Alexander Graf
2023-01-03 22:47 ` dann frazier
2023-01-04 9:35 ` Ard Biesheuvel
2023-01-04 11:11 ` Gerd Hoffmann
2023-01-04 12:04 ` Ard Biesheuvel
2023-01-04 12:56 ` Gerd Hoffmann
2023-01-06 9:55 ` Laszlo Ersek
2023-01-06 10:06 ` Laszlo Ersek
2023-01-04 13:13 ` Alexander Graf
2023-01-05 0:09 ` Alexander Graf
2023-01-05 8:11 ` Gerd Hoffmann
2023-01-05 8:43 ` Alexander Graf
2023-01-05 9:41 ` Ard Biesheuvel
2023-01-05 11:19 ` Gerd Hoffmann
2023-01-05 11:44 ` Ard Biesheuvel
2023-01-05 15:12 ` Gerd Hoffmann
2023-01-05 19:58 ` Gerd Hoffmann
2023-01-06 2:19 ` Sean [this message]
2023-01-06 8:44 ` Gerd Hoffmann
2023-01-05 23:37 ` Alexander Graf
2022-09-26 8:24 ` [PATCH v3 04/16] ArmVirtPkg/ArmVirtQemu: wire up timeout PCD to Timeout variable Ard Biesheuvel
2022-09-26 8:25 ` [PATCH v3 05/16] ArmPkg/ArmMmuLib: don't replace table entries with block entries Ard Biesheuvel
2022-09-26 22:32 ` Leif Lindholm
2022-09-26 8:25 ` [PATCH v3 06/16] ArmPkg/ArmMmuLib: Disable and re-enable MMU only when needed Ard Biesheuvel
2022-09-26 23:28 ` Leif Lindholm
2022-09-26 8:25 ` [PATCH v3 07/16] ArmPkg/ArmMmuLib: permit initial configuration with MMU enabled Ard Biesheuvel
2022-09-26 22:35 ` Leif Lindholm
2022-09-26 8:25 ` [PATCH v3 08/16] ArmPkg/ArmMmuLib: Reuse XIP MMU routines when splitting entries Ard Biesheuvel
2022-09-26 22:38 ` Leif Lindholm
2022-09-26 8:25 ` [PATCH v3 09/16] ArmPlatformPkg/PrePeiCore: permit entry with the MMU enabled Ard Biesheuvel
2022-09-26 22:39 ` [edk2-devel] " Leif Lindholm
2022-09-26 8:25 ` [PATCH v3 10/16] ArmVirtPkg/ArmVirtQemu: implement ArmPlatformLib with static ID map Ard Biesheuvel
2022-09-26 8:25 ` [PATCH v3 11/16] ArmVirtPkg/ArmVirtQemu: use first 128 MiB as permanent PEI memory Ard Biesheuvel
2022-09-26 8:25 ` [PATCH v3 12/16] ArmVirtPkg/ArmVirtQemu: enable initial ID map at early boot Ard Biesheuvel
2022-12-29 21:10 ` [edk2-devel] " dann frazier
2023-01-03 9:02 ` Ard Biesheuvel
2023-01-03 19:38 ` dann frazier
2022-09-26 8:25 ` [PATCH v3 13/16] ArmVirtPkg/ArmVirtQemu: Drop unused variable PEIM Ard Biesheuvel
2022-09-26 8:25 ` [PATCH v3 14/16] ArmVirtPkg/ArmVirtQemu: avoid shadowing PEIMs unless necessary Ard Biesheuvel
2022-09-26 8:25 ` [PATCH v3 15/16] ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to record the memory size Ard Biesheuvel
2022-09-26 8:25 ` [PATCH v3 16/16] ArmVirtPkg/ArmVirtQemu: omit PCD PEIM unless TPM support is enabled Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BY3PR19MB49007720FFAF8C5033BDFF02C8FB9@BY3PR19MB4900.namprd19.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox