DISA STIGS Viewer

Users and scripts running on behalf of users must be contained to the document root or home directory tree of the Apache web server.

Overview

Finding ID Version Rule ID IA Controls Severity
V-214284 AS24-U2-000350 SV-214284r960963_rule   Medium
Description
A web server is designed to deliver content and execute scripts or applications on the request of a client or user. Containing user requests to files in the directory tree of the hosted web application and limiting the execution of scripts and applications guarantees that the user is not accessing information protected outside the application's realm. The web server must also prohibit users from jumping outside the hosted application directory tree through access to the user's home directory, symbolic links or shortcuts, or through search paths for missing files.
STIG Date
Apache Server 2.4 UNIX Site Security Technical Implementation Guide 2025-02-12

Details

Check Text (C-15497r881479_chk)
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file:

# apachectl -V | egrep -i 'httpd_root|server_config_file'
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Note: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions "apache2ctl -V" or "httpd -V" can also be used.

Verify there is a single "Require" directive with the value of "all denied".

Verify there are no "Allow" or "Deny" directives in the root <Directory> element.

The following may be useful in extracting root directory elements from the Apache configuration for auditing:

# perl -ne 'print if /^ *<Directory *\//i .. /<\/Directory/i' $APACHE_PREFIX/conf/httpd.conf

If there are "Allow" or "Deny" directives in the root <Directory> element, this is a finding.
Fix Text (F-15495r881480_fix)
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file:

# apachectl -V | egrep -i 'httpd_root|server_config_file'
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Set the root directory directive as follows:

<Directory>
...
Require all denied
...
</Directory>

Remove any "Deny" and "Allow" directives from the root <Directory> element.

Restart Apache: apachectl restart