Verify the UEFI Boot Loader grub.cfg Permissions
Description
File permissions for /boot/efi/EFI/redhat/grub.cfg
should be set to 700.
To properly set the permissions of /boot/efi/EFI/redhat/grub.cfg
, run the command:
$ sudo chmod 700 /boot/efi/EFI/redhat/grub.cfg
Rationale
Proper permissions ensure that only the root user can modify important boot
parameters.
Shell script
The following script can be run on the host to remediate the issue.
# Remediation is applicable only in certain platforms
if [ -d /sys/firmware/efi ] && rpm --quiet -q grub2-common && { [ ! -f /.dockerenv ] && [ ! -f /run/.containerenv ]; }; then
chmod u-s,g-xwrs,o-xwrt /boot/efi/EFI/redhat/grub.cfg
else
>&2 echo 'Remediation is not applicable, nothing was done'
fi
Ansible playbook
The following playbook can be run with Ansible to remediate the issue.
- name: Gather the package facts
package\_facts:
manager: auto
tags:
- CCE-83431-7
- NIST-800-171-3.4.5
- NIST-800-53-AC-6(1)
- NIST-800-53-CM-6(a)
- configure\_strategy
- file\_permissions\_efi\_grub2\_cfg
- low\_complexity
- low\_disruption
- medium\_severity
- no\_reboot\_needed
- name: Test for existence /boot/efi/EFI/redhat/grub.cfg
stat:
path: /boot/efi/EFI/redhat/grub.cfg
register: file\_exists
when:
- '"/boot/efi" in ansible\_mounts | map(attribute="mount") | list'
- '"grub2-common" in ansible\_facts.packages'
- ansible\_virtualization\_type not in ["docker", "lxc", "openvz", "podman", "container"]
tags:
- CCE-83431-7
- NIST-800-171-3.4.5
- NIST-800-53-AC-6(1)
- NIST-800-53-CM-6(a)
- configure\_strategy
- file\_permissions\_efi\_grub2\_cfg
- low\_complexity
- low\_disruption
- medium\_severity
- no\_reboot\_needed
- name: Ensure permission u-s,g-xwrs,o-xwrt on /boot/efi/EFI/redhat/grub.cfg
file:
path: /boot/efi/EFI/redhat/grub.cfg
mode: u-s,g-xwrs,o-xwrt
when:
- '"/boot/efi" in ansible\_mounts | map(attribute="mount") | list'
- '"grub2-common" in ansible\_facts.packages'
- ansible\_virtualization\_type not in ["docker", "lxc", "openvz", "podman", "container"]
- file\_exists.stat is defined and file\_exists.stat.exists
tags:
- CCE-83431-7
- NIST-800-171-3.4.5
- NIST-800-53-AC-6(1)
- NIST-800-53-CM-6(a)
- configure\_strategy
- file\_permissions\_efi\_grub2\_cfg
- low\_complexity
- low\_disruption
- medium\_severity
- no\_reboot\_needed