{"description": "To enable randomization of the page allocator in the kernel, add the\n<tt>page_alloc.shuffle=1</tt> argument to the default GRUB 2 command line.\nTo ensure that <tt>page_alloc.shuffle=1</tt> is added as a kernel command line\nargument to newly installed kernels, add <tt>page_alloc.shuffle=1</tt> to the\ndefault Grub2 command line for Linux operating systems. Modify the line within\n<tt>/etc/default/grub</tt> as shown below:\n<pre>GRUB_CMDLINE_LINUX=\"... page_alloc.shuffle=1 ...\"</pre>\nRun the following command to update command line for already installed kernels:<pre># update-grub</pre>", "rationale": "The <tt>CONFIG_SHUFFLE_PAGE_ALLOCATOR</tt> config option is primarily\nfocused on improving the average utilization of a direct-mapped\nmemory-side-cache. Aside of this performance effect, it also reduces\npredictability of page allocations in situations when the bad actor can\ncrash the system and somehow leverage knowledge of (page) allocation order\nright after a fresh reboot, or can control the timing between a\nhot-pluggable memory node (as in NUMA node) and applications allocating\nmemory ouf of that node. The <tt>page_alloc.shuffle=1</tt> kernel command\nline parameter then forces this functionality irrespectively of memory cache\narchitecture.", "severity": "medium", "references": {"ospp": ["AVA_VAN.1"], "anssi": ["R8"]}, "control_references": {"anssi": ["R8"]}, "components": [], "identifiers": {}, "ocil_clause": "randomization of the page allocator is not enabled in the kernel", "ocil": "Inspect the form of default GRUB 2 command line for the Linux operating system\nin <tt>/etc/default/grub</tt>. If it includes <tt>page_alloc.shuffle=1</tt>,\nthen the parameter will be configured for newly installed kernels.\nFirst check if the GRUB recovery is enabled:\n<pre>$ sudo grep 'GRUB_DISABLE_RECOVERY' /etc/default/grub</pre>\nIf this option is set to true, then check that a line is output by the following command:\n<pre>$ sudo grep 'GRUB_CMDLINE_LINUX_DEFAULT.*page_alloc.shuffle=1.*' /etc/default/grub</pre>\nIf the recovery is disabled, check the line with\n<pre>$ sudo grep 'GRUB_CMDLINE_LINUX.*page_alloc.shuffle=1.*' /etc/default/grub</pre>.Moreover, current Grub config file <tt>grub.cfg</tt> must be checked. The file can be found\neither in <tt>/boot/grub</tt> in case of legacy BIOS systems, or in <tt>/boot/grub</tt> in case of UEFI systems.\nIf they include <tt>page_alloc.shuffle=1</tt>, then the parameter\nis configured at boot time.\n<pre>$ sudo grep vmlinuz GRUB_CFG_FILE_PATH | grep -v 'page_alloc.shuffle=1'</pre>\nFill in <tt>GRUB_CFG_FILE_PATH</tt> based on information above.\nThis command should not return any output.", "oval_external_content": null, "fixtext": "", "checktext": "", "vuldiscussion": "", "srg_requirement": "", "warnings": [], "conflicts": [], "requires": [], "policy_specific_content": {}, "platform": null, "platforms": [], "sce_metadata": {}, "inherited_platforms": ["grub2 and system_with_kernel"], "cpe_platform_names": [], "inherited_cpe_platform_names": ["grub2_and_system_with_kernel"], "bash_conditional": null, "fixes": {}, "title": "Enable randomization of the page allocator", "definition_location": "/aptdata/openscap/scap-security-guide/linux_os/guide/system/bootloader-grub2/grub2_page_alloc_shuffle_argument/rule.yml", "template": {"name": "grub2_bootloader_argument", "vars": {"arg_name": "page_alloc.shuffle", "arg_value": "1"}, "backends": {}}}