RHEL-08-010422 - RHEL 8 must disable virtual syscalls - grub2-editenv

Information

Syscalls are special routines in the Linux kernel, which userspace applications ask to do privileged tasks. Invoking a system call is an expensive operation because the processor must interrupt the currently executing task and switch context to kernel mode and then back to userspace after the system call completes. Virtual Syscalls map into user space a page that contains some variables and the implementation of some system calls. This allows the system calls to be executed in userspace to alleviate the context switching expense.

Virtual Syscalls provide an opportunity of attack for a user who has control of the return instruction pointer. Disabling vsyscalls help to prevent return oriented programming (ROP) attacks via buffer overflows and overruns. If the system intends to run containers based on RHEL 6 components, then virtual syscalls will need enabled so the components function properly.

Satisfies: SRG-OS-000134-GPOS-00068, SRG-OS-000433-GPOS-00192

Solution

Document the use of vsyscalls with the ISSO as an operational requirement or disable them with the following command:

$ sudo grubby --update-kernel=ALL --args='vsyscall=none'

Add or modify the following line in '/etc/default/grub' to ensure the configuration survives kernel updates:

GRUB_CMDLINE_LINUX='vsyscall=none'

See Also

https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_RHEL_8_V1R11_STIG.zip

Item Details

References: CAT|II, CCI|CCI-001084, Rule-ID|SV-230278r792886_rule, STIG-ID|RHEL-08-010422, Vuln-ID|V-230278

Plugin: Unix

Control ID: c2e25921c0ff83a7214511ceeddd28a68e227c1286a3fb6c66d7b776dc5a7dfb