In non-secure scatter files ER_DATA defined as:
ER_DATA NS_DATA_START NS_DATA_SIZE { * (+ZI +RW) }
This is followed by several other execution region definitions in RAM.
NS_DATA_SIZE is defined as the maximum available RAM for the NS Software. So in extreme case ER_DATA can be so large that the stacks and the heap overruns the available NS RAM, and that is not noticed by the linker.
ER_DATA should be defined something like:
ER_DATA NS_DATA_START NS_DATA_SIZE-NS_MSP_STACK_SIZE-NS_PSP_STACK_SIZE-NS_HEAP_SIZE { * (+ZI +RW) }