Vulnerability Discussion
Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can be either hardware-enforced or software-enforced with hardware providing the greater strength of mechanism.
Examples of attacks are buffer overflow attacks.
The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored.
/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
Based on the information above, if a configuration file that begins with "99-" is created in the "/etc/sysctl.d/" directory, it will take precedence over any other configuration file on the system.
Check
Verify RHEL 8 implements ASLR with the following command:
$ sudo sysctl kernel.randomize_va_space
kernel.randomize_va_space = 2
If "kernel.randomize_va_space" is not set to "2", this is a finding.
Check that the configuration files are present to enable this kernel parameter.
$ sudo grep -r kernel.randomize_va_space /etc/sysctl.d/*.conf
/etc/sysctl.d/99-sysctl.conf:kernel.randomize_va_space = 2
If "kernel.randomize_va_space" is not set to "2", is missing or commented out, this is a finding.
If the configuration file does not begin with "99-", this is a finding.
Fix
Configure the operating system to implement virtual address space randomization.
Add or edit the following line in a system configuration file, which begins with "99-", in the "/etc/sysctl.d/" directory:
kernel.randomize_va_space=2
Issue the following command to make the changes take effect:
$ sudo sysctl --system