You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(1) Send/recv requests get queued up in the correspondent IPC queue
(2) uVisor drains IPC queue to find two matching requests
(3) uVisor validates receiving IPC IO request at
if (vmpu_buffer_access_is_ok_static(start_addr, end_addr)) {
(7) Check passes, because 0 is within the range of flash (static region 0) and end address is also in range.
(8) uVisor delivers message, triggers memory access violation due to memcpy
Suggested Fix:
If the flash is public (as in Armv8m), fix the ACL for public flash memory
Otherwise, fix access check to take parameter indicating the permission needed and check whether the operation is permitted against the ACL.
The text was updated successfully, but these errors were encountered:
Architecture affected: Armv7m
Target tested: EFM32
Code used to trigger the fault:
Sequence to error:
(0) Flash memory initialised to be non-writable at vMPU initialisation.
uvisor/core/vmpu/src/mpu_armv7m/vmpu_armv7m.c
Line 415 in a2b8ff5
(1) Send/recv requests get queued up in the correspondent IPC queue
(2) uVisor drains IPC queue to find two matching requests
(3) uVisor validates receiving IPC IO request at
uvisor/core/system/src/ipc.c
Line 313 in a2b8ff5
(4) uVisor validates whether the data pointer is allowed for access for given length at
uvisor/core/system/src/ipc.c
Line 188 in a2b8ff5
(5) vMPU checks whether public box can access the memory at
uvisor/core/vmpu/src/mpu_armv7m/vmpu_armv7m_mpu.c
Line 394 in a2b8ff5
(6) vMPU checks whether the memory is in static region at
uvisor/core/vmpu/src/mpu_armv7m/vmpu_armv7m_mpu.c
Line 399 in a2b8ff5
(7) Check passes, because
0
is within the range of flash (static region 0) and end address is also in range.(8) uVisor delivers message, triggers memory access violation due to
memcpy
uvisor/core/system/src/ipc.c
Line 145 in a2b8ff5
Debug prints:
Suggested Fix:
If the flash is public (as in Armv8m), fix the ACL for public flash memory
Otherwise, fix access check to take parameter indicating the permission needed and check whether the operation is permitted against the ACL.
The text was updated successfully, but these errors were encountered: