[Bug]: RuntimeDxe Virtualizes the FVB Protocol Function Pointers #877
Labels
state:needs-triage
Needs to triaged to determine next steps
state:stale
Has not been updated in a long time
type:bug
Something isn't working
urgency:medium
Important with a moderate impact
Is there an existing issue for this?
Current Behavior
RuntimeDxe virtualizes the pointers for the FVB protocol, which is not the typical way that UEFI operates, of virtualize your own pointers. See:
mu_basecore/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
Lines 253 to 260 in 7f9a27e
This is potentially dangerous, a different FVB protocol provider may do the canonical behavior and virtualize their own protocol pointers, which could harmlessly fail EfiConvertPointer calls or worse could already have been converted into a virtual address that itself maps to a physical address in the VirtualAddressMap and so the second EfiConvertPointer call could succeed and return a new virtual address and have us execute in a random point in the code.
Expected Behavior
The FVB protocol should virtualize the pointers to its protocol itself and not rely on RuntimeDxe to do so.
Steps To Reproduce
Look at code.
Build Environment
Version Information
Urgency
Medium
Are you going to fix this?
I will fix it
Do you need maintainer feedback?
No maintainer feedback needed
Anything else?
No response
The text was updated successfully, but these errors were encountered: