1.1.6 Ensure /dev/shm is configured

Information

/dev/shm is a traditional shared memory concept. One program will create a memory portion, which other processes (if permitted) can access. Mounting tmpfs at /dev/shm is handled automatically by systemd.

Rationale:

Any user can upload and execute files inside the /dev/shm similar to the /tmp partition. Configuring /dev/shm allows an administrator to set the noexec option on the mount, making /dev/shm useless for an attacker to install executable code. It would also prevent an attacker from establishing a hardlink to a system setuid program and wait for it to be updated. Once the program was updated, the hardlink would be broken and the attacker would have his own copy of the program. If the program happened to have a security vulnerability, the attacker could continue to exploit the known flaw.

Solution

Edit /etc/fstab and add or edit the following line:

tmpfs /dev/shm tmpfs defaults,noexec,nodev,nosuid,seclabel 0 0

Run the following command to remount /dev/shm:

# mount -o remount,noexec,nodev,nosuid /dev/shm




Additional Information:

An entry for /dev/shm in /etc/fstab will take precedence.

tmpfs can be resized using the size={size} parameter in /etc/fstab. If we don't specify the size, it will be half the RAM.

Example:

tmpfs /dev/shm tmpfs defaults,noexec,nodev,nosuid,size=2G 0 0

See Also

https://workbench.cisecurity.org/files/3208