NixOS must prevent all software from executing at higher privilege levels than users executing the software.
Severity | Group ID | Group Title | Version | Rule ID | Date | STIG Version |
|---|---|---|---|---|---|---|
| medium | V-268148 | SRG-OS-000326-GPOS-00126 | ANIX-00-001280 | SV-268148r1131097_rule | 2025-08-19 | 1 |
Description
In certain situations, software applications/programs need to execute with elevated privileges to perform required functions. However, if the privileges required for execution are at a higher level than the privileges assigned to organizational users invoking such applications/programs, those users are indirectly provided with greater privileges than assigned by the organizations.
Some programs and processes are required to operate at a higher privilege level and therefore should be excluded from the organization-defined software list after review.
ℹ️ Check
Verify NixOS audits and provides alerts of audit failures by running the following command:
$grep A -15 security.auditd /etc/nixos/configuration.nix
/etc/nixos/configuration.nix:
security.auditd.enable = true;
security.audit.enable = true;
security.audit.rules = [
''
<audit_rules>
''
]; security.audit.rules = [
"-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv"
];
If "security.auditd", "security.audit" and the additional modifications do not equal true, are missing, or are commented out, this is a finding.
✔️ Fix
Configure the audit service to produce audit records.
Add the following Nix code to the NixOS Configuration, usually located in /etc/nixos/configuration.nix or /etc/nixos/flake.nix:
security.auditd.enable = true;
security.audit.enable = true;
Add the following audit rules:
security.audit.rules = [
"-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv"
];
Rebuild and switch to the new NixOS configuration:
$ sudo nixos-rebuild switch