Ubuntu 22.04 LTS must implement nonexecutable data to protect its memory from unauthorized code execution.

STIG ID: UBTU-22-213025  |  SRG: SRG-OS-000433-GPOS-00192 | Severity: medium |  CCI: CCI-002824

Vulnerability Discussion

Some adversaries launch attacks with the intent of executing code in nonexecutable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can either be hardware-enforced or software-enforced with hardware providing the greater strength of mechanism.

Examples of attacks are buffer overflow attacks.

Check

Verify the NX (no-execution) bit flag is set on the system by using the following command:

$ sudo dmesg | grep -i "execute disable"
[ 0.000000] NX (Execute Disable) protection: active

If "dmesg" does not show "NX (Execute Disable) protection: active", check the hardware capabilities of the installed CPU by using the following command:

$ grep flags /proc/cpuinfo | grep -o nx | sort -u
nx

If no output is returned, this is a finding.

Fix

Configure Ubuntu 22.04 LTS to enable NX.

If the installed CPU is hardware capable of NX protection, check if the system's BIOS/UEFI setup configuration permits toggling the "NX bit" or "no execution bit", and set it to "enabled".