Hello all,

I am currently investigating what would be the best way to make sure
Runtime Services regions are never mapped both writable and executable
by the arm64 Linux kernel, as a security enhancement. This is
especially important under kexec, as the UEFI memory ranges may
survive many reboots.

It would seem inappropriate to me to just apply the WP bit to RT code
regions and the XP bit to RT data regions, so I am trying to figure
out how UEFI uses those bits. The spec lists the EFI_MEMORY_WP and
EFI_MEMORY_XP bits as indicating whether the hardware that backs a
memory region supports being configured as the respective type.
However, those bits are only set based on the nature of the system
RAM, and inherited by all the allocations that are done from it. I
can't find any logic that manipulates any of those bits base on the
code/data nature of the allocation.

So what kind of logic should be applied to this data? Is it in fact
appropriate to, for instance, write protect a code region just based
on its type and its attribute having EFI_MEMORY_WP set?

Regards,
Ard.

------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to