Changes

758 bytes added ,  04:11, 12 October 2022
same conceptual aslr issue was fixed in ro, not just loader
Line 568: Line 568:  
| [[15.0.0]]
 
| [[15.0.0]]
 
| January 30, 2022 (presumably found much earlier?)
 
| January 30, 2022 (presumably found much earlier?)
 +
| October 11, 2022
 +
| Everyone
 +
|-
 +
| Broken RNG for [[RO_services|ro]] ASLR
 +
| The RNG used to determine where to randomly map NROs in the target process was TinyMT (nn::os::detail::RngManager output, seeded by 128 bits of entropy). However, TinyMT is not cryptographically secure (and can in fact be analytically solved).
 +
 +
Thus, with a few NRO mapping addresses, one could learn the TinyMT state and derive all previous/future RNG outputs, breaking NRO aslr for all processes.
 +
 +
With [15.0.0+] ro now uses csrng_GenerateRandomBytes to determine the random map address for NROs.
 +
| Breaking ASLR for all NROs loaded in all processes, allowing predicting all NRO mappings for all processes until the next reboot.
 +
| [[15.0.0]]
 +
| [[15.0.0]]
 +
| Late 2021/Early 2022
 
| October 11, 2022
 
| October 11, 2022
 
| Everyone
 
| Everyone