Vulnerability Discussion
Exposing kernel pointers (through procfs or "seq_printf()") exposes kernel writeable structures, which may contain functions pointers. If a write vulnerability occurs in the kernel, allowing write access to any of this structure, the kernel can be compromised. This option disallows any program without the CAP_SYSLOG capability to get the addresses of kernel pointers by replacing them with "0".
Satisfies: SRG-OS-000132-GPOS-00067, SRG-OS-000433-GPOS-00192, SRG-OS-000480-GPOS-00227
Check
Verify the runtime status of the kernel.kptr_restrict kernel parameter with the following command:
$ sudo sysctl kernel.kptr_restrict
kernel.kptr_restrict = 1
Verify the configuration of the kernel.kptr_restrict kernel parameter with the following command:
$ sudo /usr/lib/systemd/systemd-sysctl --cat-config | egrep -v '^(#|;)' | grep -F kernel.kptr_restrict | tail -1
kernel.kptr_restrict =1
If "kernel.kptr_restrict" is not set to "1" or is missing, this is a finding.
Fix
Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory:
kernel.kptr_restrict = 1
Reload settings from all system configuration files with the following command:
$ sudo sysctl --system