STIGViewer Support

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

Overview

Finding IDVersionRule IDIA ControlsSeverity
V-281321RHEL-10-701190SV-281321r1167113_ruleCCI-002824medium
Description
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. Checking "dmesg" will return a false-positive if the system has generated enough kernel messages that the "(Execute Disable) protection: active" line is no longer present in the output from "dmesg(1)". A better way to ensure that ExecShield is enabled is to first ensure all processors support the NX feature, and then to check that "noexec" was not passed to the kernel command line.
STIGDate
Red Hat Enterprise Linux 10 Security Technical Implementation Guide2026-05-14

Related Frameworks

1 mapping across 4 frameworks
SCF0 mappings

No source states a mapping between these directly.

Also reachable in 3 hops (5) derived by us, not asserted by any source

Each of these is a route we composed by chaining published mappings. No publisher states a relationship between the two endpoints.

CFG-02Secure Baseline Configurations
1.00
CRY-01Use of Cryptographic Controls
1.00
DCH-01Data Protection
1.00
IAC-21Least Privilege
1.00
SEA-10Memory Protection
1.00
NIST 800-530 mappings

No source states a mapping between these directly.

Also reachable in 2 hops (14) derived by us, not asserted by any source

Each of these is a route we composed by chaining published mappings. No publisher states a relationship between the two endpoints.

AC-6(10)Prohibit Non-privileged Users from Executing Privileged Functions
1.00
AU-12Audit Record Generation
1.00
AU-3(1)Additional Audit Information
1.00
CM-6Configuration Settings
1.00
CM-7Least Functionality
1.00
CM-7(2)Prevent Program Execution
1.00
SC-2Separation of System and User Functionality
1.00
SC-3Security Function Isolation
1.00
SC-39Process Isolation
1.00
SC-5Denial-of-service Protection
1.00

+4 more (top 10 by confidence shown)

CCI1 mapping
NIST CSF 2.00 mappings

No source states a mapping between these directly.

Also reachable in 3 hops (1) derived by us, not asserted by any source

Each of these is a route we composed by chaining published mappings. No publisher states a relationship between the two endpoints.

Who does this work

7 NICE work roles and 7 EC-Council certifications.

This is an inference across published mappings, not a single claim by anyone. This check maps to a control, which maps to a Cybersecurity Framework outcome, which NIST assigns to the work roles below. EC-Council separately maps its certifications to those same roles.

A certification prepares someone for a role. It is not evidence that a holder is qualified, and neither NIST nor EC-Council has stated that any certification here addresses this check.

Work-role assignments published by NIST (NICE Framework Components 2.2.0 and the CSF 2.0 OLIR crosswalk). Certification mappings published by EC-Council.

Details

Check Text (C-281321r1167113_chk)

Verify RHEL 10 enables ExecShield. 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 Text (F-85787r1167112_fix)

Configure RHEL 10 to enable ExecShield. If "/proc/cpuinfo" shows that one or more processors do not enable ExecShield (lack the "nx" feature flag), verify the NX/XD feature is not disabled in the BIOS or UEFI. If it is disabled, enable it. If the "noexec" option is present on the kernel command line, update the GRUB 2 bootloader configuration to remove it by running the following command: $ sudo grubby --update-kernel=ALL --remove-args=noexec