STIGUI
V-281293CAT II — Medium severitySV-281293r1166831_rule

RHEL 10 must implement nonexecutable data to protect its memory from unauthorized code execution.

Rule version RHEL-10-700900 · STIG v1 · 2026-09-17

Discussion

ExecShield uses the segmentation feature on all x86 systems to prevent execution in memory higher than a certain address. It writes an address as a limit in the code segment descriptor, to control where code can be executed, on a per-process basis. When the kernel places a process's memory regions such as the stack and heap higher than this address, the hardware prevents execution in that address range. This is enabled by default on the latest Red Hat and Fedora systems if supported by the hardware.

Check

Verify RHEL 10 implements nonexecutable data to protect its memory from unauthorized code execution.

Run the following command:

$ sudo grep ^flags /proc/cpuinfo | grep -Ev '([^[:alnum:]])(nx)([^[:alnum:]]|$)'

If any output is returned, this is a finding.

Run the following command:

$ sudo grubby --info=ALL | grep args | grep -E '([^[:alnum:]])(noexec)([^[:alnum:]])'

If any output is returned, this is a finding.

Fix

Configure RHEL 10 to implement nonexecutable data to protect its memory from unauthorized code execution.

Update the GRUB 2 bootloader configuration.

Run the following command:

$ sudo grubby --update-kernel=ALL --remove-args=noexec

Identifiers

Group ID
V-281293
Group title
SRG-OS-000433-GPOS-00192
Rule ID
SV-281293r1166831_rule
Check ID
C-85854r1166829_chk
Fix ID
F-85759r1166830_fix