Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Ard Biesheuvel 7eb927db3e MdeModulePkg/DxeCore: implement memory protection policy
This implements a DXE memory protection policy that ensures that regions
that don't require executable permissions are mapped with the non-exec
attribute set.

First of all, it iterates over all entries in the UEFI memory map, and
removes executable permissions according to the configured DXE memory
protection policy, as recorded in PcdDxeNxMemoryProtectionPolicy.

Secondly, it sets or clears the non-executable attribute when allocating
or freeing pages, both for page based or pool based allocations.

Note that this complements the image protection facility, which applies
strict permissions to BootServicesCode/RuntimeServicesCode regions when
the section alignment allows it. The memory protection configured by this
patch operates on non-code regions only.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-02-28 15:01:10 +00:00
AppPkg AppPkg: Update email and URL. 2016-10-26 09:34:34 -07:00
ArmPkg ArmPkg/CpuDxe: ignore attribute changes during SyncCacheConfig() 2017-02-28 14:59:50 +00:00
ArmPlatformPkg ArmPlatformPkg/ArmPlatformStackLib: use callee preserved registers 2017-02-22 13:22:41 +00:00
ArmVirtPkg ArmPkg: remove unused PcdArmUncachedMemoryMask PCD 2017-02-27 16:18:29 +00:00
BaseTools BaseTools: GCC: move most AutoGen.obj contents back to .data section 2017-02-24 11:27:56 +01:00
BeagleBoardPkg ArmPkg: remove unused PcdArmUncachedMemoryMask PCD 2017-02-27 16:18:29 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootPayloadPkg/CbSupportPei: Fix the memory map issue 2016-11-17 14:49:11 -08:00
CorebootPayloadPkg CorebootPayloadPkg: Use EfiEventGroupSignal from UefiLib 2017-01-20 15:55:41 +08:00
CryptoPkg CryptoPkg/OpensslLib: Upgrade OpenSSL version to 1.0.2k 2017-02-28 08:48:06 +08:00
DuetPkg DuetPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Fix some typos of "according" 2017-02-08 14:49:21 +08:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-05 15:53:30 +00:00
EmulatorPkg EmulatorPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
FatBinPkg FatBinPkg: New EnhancedFatDxe binaries for IA32, X64, EBC and IPF 2016-12-19 15:26:52 +08:00
FatPkg FatPkg: Explicitly declare FAT_CLUSTER_SPECIAL as unsigned type 2017-01-12 21:26:27 +08:00
IntelFrameworkModulePkg IntelFrameworkModulePkg: Use EfiEventEmptyFunction from UefiLib 2017-01-20 15:55:32 +08:00
IntelFrameworkPkg IntelFrameworkPkg UefiLib: Make the event empty function public 2017-01-20 15:51:17 +08:00
IntelFsp2Pkg IntelFsp2Pkg: 41d739e breaks flat tree build 2016-12-05 14:17:23 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete. 2016-10-28 07:46:42 +08:00
IntelFspPkg IntelFspPkg: Fix typos in comments 2016-10-24 09:26:28 +08:00
IntelFspWrapperPkg IntelFspWrapperPkg: Fix typos in comments 2016-10-24 09:26:30 +08:00
IntelSiliconPkg IntelSiliconPkg: Fix format issues 2016-12-20 10:51:16 +08:00
MdeModulePkg MdeModulePkg/DxeCore: implement memory protection policy 2017-02-28 15:01:10 +00:00
MdePkg MdePkg/UefiDevicePathLib: Use BaseLib string conversion services 2017-02-28 11:30:33 +08:00
NetworkPkg NetworkPkg/Ip6Dxe: Ignore duplicated DNS address check 2017-02-27 14:57:26 +08:00
Nt32Pkg Nt32Pkg: Add build flag to enable or disable IPv6 network stack. 2017-02-28 14:11:07 +08:00
Omap35xxPkg ArmPkg: remove unused PcdArmUncachedMemoryMask PCD 2017-02-27 16:18:29 +00:00
OptionRomPkg OptionRomPkg: Fix typos in comments 2016-11-15 11:05:34 +08:00
OvmfPkg OvmfPkg: exclude libssl functionality from OpensslLib if TLS_ENABLE=FALSE 2017-02-25 14:56:53 +01:00
PcAtChipsetPkg PcAtChipsetPkg: Fix typing errors 2017-01-20 08:50:09 +08:00
PerformancePkg PerformancePkg/Dp_App: Add check to avoid NULL pointer deference 2017-02-28 08:57:43 +08:00
QuarkPlatformPkg QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Fix GCC build issues 2017-01-11 11:11:30 -08:00
QuarkSocPkg QuarkSocPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
SecurityPkg SecurityPkg/SecureBootConfigDxe: Use StrToGuid in BaseLib 2017-02-28 11:30:34 +08:00
ShellBinPkg ShellBinPkg: New Shell binaries for IA32 and X64 2016-12-19 15:27:38 +08:00
ShellPkg ShellPkg/comp: Fix GCC build failure 2017-02-28 16:05:32 +08:00
SignedCapsulePkg SignedCapsulePkg/IniParsingLib: Use AsciiStrToGuid in BaseLib 2017-02-28 11:30:34 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg: Avoid to re-init IDT table again at SMI entry 2016-11-30 14:34:45 +08:00
StdLib StdLib/LibC ARM AARCH64: do not redefine compiler intrinsics 2016-08-09 10:10:12 +02:00
StdLibPrivateInternalFiles StdLib: Clarify and improve comments. 2016-01-06 00:31:42 +00:00
UefiCpuPkg UefiCpuPkg/CpuDxe: Do not ASSERT on AllocateMemorySpace() error 2017-02-27 10:28:37 +08:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2DeviceRefCodePkg: Fixed thermal issue. 2017-02-08 15:32:39 +08:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg/BootScriptSaveDxe: save 64-bit LoopTimes 2017-01-03 12:23:41 +01:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Edk2Setup.bat Edk2Setup.bat: Fix build errors from VS tools PREFIX ENV missing 2016-11-05 09:10:58 +08:00
Maintainers.txt Maintainers.txt: Change maintainer of VLV2 packages. 2016-10-27 21:08:23 +08:00
edksetup.bat edksetup.bat: make sure BASE_TOOLS_PATH be set correctly 2016-10-26 13:45:45 +08:00
edksetup.sh edksetup.sh, BaseTools/BuildEnv: add --reconfig support 2016-10-24 13:53:16 +01:00