documentation_complete: true


title: 'Add nosuid Option to /home'

description: |-
    The <tt>nosuid</tt> mount option can be used to prevent
    execution of setuid programs in <tt>/home</tt>. The SUID and SGID permissions
    should not be required in these user data directories.
    {{{ describe_mount(option="nosuid", part="/home") }}}

rationale: |-
    The presence of SUID and SGID executables should be tightly controlled. Users
    should not be able to execute SUID or SGID binaries from user home directory partitions.

severity: medium

identifiers:
    cce@rhel8: CCE-81050-7
    cce@rhel9: CCE-83894-6
    cce@rhel10: CCE-88987-3
    cce@sle12: CCE-83100-8
    cce@sle15: CCE-85633-6
    cce@slmicro5: CCE-93791-2
    cce@slmicro6: CCE-95062-6

references:
    cis-csc: 11,13,14,3,8,9
    cobit5: APO13.01,BAI10.01,BAI10.02,BAI10.03,BAI10.05,DSS05.02,DSS05.05,DSS05.06,DSS06.06
    isa-62443-2009: 4.3.3.5.1,4.3.3.5.2,4.3.3.5.3,4.3.3.5.4,4.3.3.5.5,4.3.3.5.6,4.3.3.5.7,4.3.3.5.8,4.3.3.6.1,4.3.3.6.2,4.3.3.6.3,4.3.3.6.4,4.3.3.6.5,4.3.3.6.6,4.3.3.6.7,4.3.3.6.8,4.3.3.6.9,4.3.3.7.1,4.3.3.7.2,4.3.3.7.3,4.3.3.7.4,4.3.4.3.2,4.3.4.3.3
    isa-62443-2013: 'SR 1.1,SR 1.10,SR 1.11,SR 1.12,SR 1.13,SR 1.2,SR 1.3,SR 1.4,SR 1.5,SR 1.6,SR 1.7,SR 1.8,SR 1.9,SR 2.1,SR 2.2,SR 2.3,SR 2.4,SR 2.5,SR 2.6,SR 2.7,SR 7.6'
    iso27001-2013: A.11.2.9,A.12.1.2,A.12.5.1,A.12.6.2,A.14.2.2,A.14.2.3,A.14.2.4,A.8.2.1,A.8.2.2,A.8.2.3,A.8.3.1,A.8.3.3,A.9.1.2
    nerc-cip: CIP-003-8 R5.1.1,CIP-003-8 R5.3,CIP-004-6 R2.3,CIP-007-3 R2.1,CIP-007-3 R2.2,CIP-007-3 R2.3,CIP-007-3 R5.1,CIP-007-3 R5.1.1,CIP-007-3 R5.1.2
    nist: CM-7(a),CM-7(b),CM-6(a),AC-6,AC-6(1),MP-7
    nist-csf: PR.IP-1,PR.PT-2,PR.PT-3
    srg: SRG-OS-000368-GPOS-00154,SRG-OS-000480-GPOS-00227
    stigid@ol7: OL07-00-021000
    stigid@ol8: OL08-00-010570
    stigid@sle12: SLES-12-010790
    stigid@sle15: SLES-15-040140

{{{ complete_ocil_entry_mount_option("/home", "nosuid") }}}

fixtext: |-
    {{{ fixtext_mount_option("/home", "nosuid") }}}

srg_requirement: '{{{ srg_requirement_mount_option("/home", "nosuid") }}}'

{{% if "ol" not in families %}}
platform: mount[home]
template:
    name: mount_option
    vars:
        mountpoint: /home
        mountoption: nosuid
{{% else %}}
warnings:
    - functionality: |-
        OVAL looks for partitions whose mount point is a substring of any interactive user's home
        directory and validates that noexec option is there. Because of this, there could be false
        negatives when several partitions share a base substring. For example, if there is a home
        directory in <tt>/var/tmp/user1</tt> and there are partitions mounted in <tt>/var</tt> and
        <tt>/var/tmp</tt>. The noexec option is only expected in <tt>/var/tmp</tt>, but OVAL will
        check both.<br/>
        Bash remediation uses the <tt>df</tt> command to find out the partition where the home
        directory is mounted. However, if the directory doesn't exist the remediation won't be
        applied.
template:
    name: mount_option_home
    vars:
        mountoption: nosuid
{{% endif %}}
