VMware vSphere 7.0 vCenter Appliance Perfcharts Security Technical Implementation Guide

  • Version/Release: V1R1
  • Published: 2023-02-21
  • Expand All:
  • Severity:
  • Sort:
Compare

Select any two versions of this STIG to compare the individual requirements

View

Select any old version/release of this STIG to view the previous requirements

This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DOD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.
b
Performance Charts must limit the amount of time that each Transport Control Protocol (TCP) connection is kept alive.
AC-10 - Medium - CCI-000054 - V-256611 - SV-256611r888324_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCPF-70-000001
Vuln IDs
  • V-256611
Rule IDs
  • SV-256611r888324_rule
Denial of service (DoS) is one threat against web servers. Many DoS attacks attempt to consume web server resources in such a way that no more resources are available to satisfy legitimate requests. In Tomcat, the "connectionTimeout" attribute sets the number of milliseconds the server will wait after accepting a connection for the request Uniform Resource Identifier (URI) line to be presented. This timeout will also be used when reading the request body (if any). This prevents idle sockets that are not sending HTTP requests from consuming system resources and potentially denying new connections.
Checks: C-60286r888322_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Connector/@connectionTimeout' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: connectionTimeout="20000" If the output does not match the expected result, this is a finding.

Fix: F-60229r888323_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Navigate to each of the <Connector> nodes. Configure each <Connector> node with the value: connectionTimeout="20000" Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must limit the number of concurrent connections permitted.
AC-10 - Medium - CCI-000054 - V-256612 - SV-256612r888327_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCPF-70-000002
Vuln IDs
  • V-256612
Rule IDs
  • SV-256612r888327_rule
Resource exhaustion can occur when an unlimited number of concurrent requests are allowed on a website, facilitating a denial-of-service attack. Unless the number of requests is controlled, the web server can consume enough system resources to cause a system crash. Mitigating this kind of attack will include limiting the number of concurrent HTTP/HTTPS requests. In Tomcat, each incoming request requires a thread for the duration of that request. If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the value of the "maxThreads" attribute.
Checks: C-60287r888325_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Executor/@maxThreads' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: maxThreads="300" If the output does not match the expected result, this is a finding.

Fix: F-60230r888326_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Navigate to the <Executor> mode with the name of "tomcatThreadPool" and configure with the value 'maxThreads="300"'. Note: The <Executor> node should be configured as follows: <Executor maxThreads="300" minSpareThreads="50" name="tomcatThreadPool" namePrefix="tomcat-http--"/> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must limit the maximum size of a POST request.
AC-10 - Medium - CCI-000054 - V-256613 - SV-256613r888330_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCPF-70-000003
Vuln IDs
  • V-256613
Rule IDs
  • SV-256613r888330_rule
The "maxPostSize" value is the maximum size in bytes of the POST that will be handled by the container FORM URL parameter parsing. Limit its size to reduce exposure to a denial-of-service attack. If "maxPostSize" is not set, the default value of 2097152 (2MB) is used. Performance Charts is configured in its shipping state to not set a value for "maxPostSize".
Checks: C-60288r888328_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Connector/@maxPostSize' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: XPath set is empty If the output does not match the expected result, this is a finding.

Fix: F-60231r888329_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Navigate to each of the <Connector> nodes. Remove any configuration for "maxPostSize". Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must protect cookies from cross-site scripting (XSS).
AC-10 - Medium - CCI-000054 - V-256614 - SV-256614r888333_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCPF-70-000004
Vuln IDs
  • V-256614
Rule IDs
  • SV-256614r888333_rule
Cookies are a common way to save session state over the HTTP(S) protocol. If an attacker can compromise session data stored in a cookie, they are better able to launch an attack against the server and its applications. When a cookie is tagged with the "HttpOnly" flag, it tells the browser that this particular cookie should only be accessed by the originating server. Any attempt to access the cookie from client script is strictly forbidden. Satisfies: SRG-APP-000001-WSR-000002, SRG-APP-000439-WSR-000154
Checks: C-60289r888331_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/session-config/cookie-config/http-only' - Expected result: &lt;http-only&gt;true&lt;/http-only&gt; If the output does not match the expected result, this is a finding.

Fix: F-60232r888332_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml Navigate to the <session-config> node and configure it as follows: <session-config> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> <session-timeout>30</session-timeout> </session-config> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must record user access in a format that enables monitoring of remote access.
AC-17 - Medium - CCI-000067 - V-256615 - SV-256615r888336_rule
RMF Control
AC-17
Severity
Medium
CCI
CCI-000067
Version
VCPF-70-000005
Vuln IDs
  • V-256615
Rule IDs
  • SV-256615r888336_rule
Remote access can be exploited by an attacker to compromise the server. By recording all remote access activities, it will be possible to determine the attacker's location, intent, and degree of success. Tomcat can be configured with an "AccessLogValve", a component that can be inserted into the request processing pipeline to provide robust access logging. The "AccessLogValve" creates log files in the same format as those created by standard web servers. When "AccessLogValve" is properly configured, log files will contain all the forensic information necessary in the case of a security incident. Satisfies: SRG-APP-000016-WSR-000005, SRG-APP-000089-WSR-000047, SRG-APP-000093-WSR-000053, SRG-APP-000095-WSR-000056, SRG-APP-000096-WSR-000057, SRG-APP-000097-WSR-000058, SRG-APP-000098-WSR-000059, SRG-APP-000098-WSR-000060, SRG-APP-000099-WSR-000061, SRG-APP-000100-WSR-000064, SRG-APP-000374-WSR-000172, SRG-APP-000375-WSR-000171
Checks: C-60290r888334_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Engine/Host/Valve[@className="org.apache.catalina.valves.AccessLogValve"]/@pattern' - Expected result: pattern="%h %{X-Forwarded-For}i %l %u %t &amp;quot;%r&amp;quot; %s %b &amp;quot;%{User-Agent}i&amp;quot;" If the output does not match the expected result, this is a finding.

Fix: F-60233r888335_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Inside the <Host> node, find the "AccessLogValve" <Valve> node and replace the "pattern" element as follows: pattern="%h %{X-Forwarded-For}i %l %u %t &quot;%r&quot; %s %b &quot;%{User-Agent}i&quot;" Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must generate log records for system startup and shutdown.
AU-12 - Medium - CCI-000169 - V-256616 - SV-256616r888339_rule
RMF Control
AU-12
Severity
Medium
CCI
CCI-000169
Version
VCPF-70-000006
Vuln IDs
  • V-256616
Rule IDs
  • SV-256616r888339_rule
Logging must be started as soon as possible when a service starts and when a service is stopped. Many forms of suspicious actions can be detected by analyzing logs for unexpected service starts and stops. Also, by starting to log immediately after a service starts, it becomes more difficult for suspicious activity to go unlogged. On the vCenter Server Appliance (VCSA), the "vmware-vmon" service starts up the Java virtual machines (JVMs) for various vCenter processes, including Performance Charts, and the individual json config files control the early JVM logging. Ensuring these json files are configured correctly enables early Java "stdout" and "stderr" logging. Satisfies: SRG-APP-000089-WSR-000047, SRG-APP-000092-WSR-000055
Checks: C-60291r888337_chk

At the command prompt, run the following command: # grep StreamRedirectFile /etc/vmware/vmware-vmon/svcCfgfiles/perfcharts.json Expected result: "StreamRedirectFile" : "%VMWARE_LOG_DIR%/vmware/perfcharts/vmware-perfcharts-runtime.log", If the output does not match the expected result, this is a finding.

Fix: F-60234r888338_fix

Navigate to and open: /etc/vmware/vmware-vmon/svcCfgfiles/perfcharts.json Below the last line of the "PreStartCommandArg" block, add the following line: "StreamRedirectFile" : "%VMWARE_LOG_DIR%/vmware/perfcharts/vmware-perfcharts-runtime.log", Restart the appliance for changes to take effect.

b
Performance Charts log files must only be modifiable by privileged users.
AU-9 - Medium - CCI-000162 - V-256617 - SV-256617r888342_rule
RMF Control
AU-9
Severity
Medium
CCI
CCI-000162
Version
VCPF-70-000007
Vuln IDs
  • V-256617
Rule IDs
  • SV-256617r888342_rule
Log data is essential in the investigation of events. The accuracy of the information is always pertinent. One of the first steps an attacker will undertake is the modification or deletion of log records to cover tracks and prolong discovery. The web server must protect the log data from unauthorized modification. Performance Charts restricts all modification of log files by default, but this configuration must be verified. Satisfies: SRG-APP-000118-WSR-000068, SRG-APP-000119-WSR-000069, SRG-APP-000120-WSR-000070
Checks: C-60292r888340_chk

At the command prompt, run the following command: # find /storage/log/vmware/perfcharts/ -xdev -type f -a '(' -perm -o+w -o -not -user perfcharts -o -not -group users ')' -exec ls -ld {} \; If any files are returned, this is a finding.

Fix: F-60235r888341_fix

At the command prompt, run the following commands: # chmod o-w <file> # chown perfcharts:users <file> Note: Substitute <file> with the listed file.

b
Performance Charts application files must be verified for their integrity.
CM-5 - Medium - CCI-001749 - V-256618 - SV-256618r888345_rule
RMF Control
CM-5
Severity
Medium
CCI
CCI-001749
Version
VCPF-70-000008
Vuln IDs
  • V-256618
Rule IDs
  • SV-256618r888345_rule
Verifying the Security Token Service application code is unchanged from its shipping state is essential for file validation and nonrepudiation of Performance Charts. There is no reason the MD5 hash of the RPM original files should be changed after installation, excluding configuration files.
Checks: C-60293r888343_chk

At the command prompt, run the following command: # rpm -V VMware-perfcharts|grep "^..5......"|grep -v -E "\.properties|\.conf|\.xml|\.password" If any files are returned, this is a finding.

Fix: F-60236r888344_fix

Reinstall the vCenter Server Appliance (VCSA) or roll back to a backup. VMware does not support modifying the Performance Charts installation files manually.

b
Performance Charts must only run one webapp.
CM-5 - Medium - CCI-001749 - V-256619 - SV-256619r888348_rule
RMF Control
CM-5
Severity
Medium
CCI
CCI-001749
Version
VCPF-70-000009
Vuln IDs
  • V-256619
Rule IDs
  • SV-256619r888348_rule
VMware ships Performance Charts on the vCenter Server Appliance (VCSA)with one webapp. Any other path is potentially malicious and must be removed.
Checks: C-60294r888346_chk

At the command prompt, run the following command: # ls -A /usr/lib/vmware-perfcharts/tc-instance/webapps Expected result: statsreport If the output does not match the expected result, this is a finding.

Fix: F-60237r888347_fix

For each unexpected directory returned in the check, run the following command: # rm /usr/lib/vmware-perfcharts/tc-instance/webapps/<NAME> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must not be configured with unsupported realms.
CM-7 - Medium - CCI-000381 - V-256620 - SV-256620r888351_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000010
Vuln IDs
  • V-256620
Rule IDs
  • SV-256620r888351_rule
Performance Charts performs user authentication at the application level and not through Tomcat. Depending on the vCenter Server Appliance (VCSA) version, Performance Charts may come configured with a "UserDatabaseRealm". This should be removed as part of eliminating unnecessary features.
Checks: C-60295r888349_chk

At the command prompt, run the following command: # grep UserDatabaseRealm /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml If the command produces any output, this is a finding.

Fix: F-60238r888350_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Remove the <Realm> node returned in the check. Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must be configured to limit access to internal packages.
CM-7 - Medium - CCI-000381 - V-256621 - SV-256621r888354_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000011
Vuln IDs
  • V-256621
Rule IDs
  • SV-256621r888354_rule
The "package.access" entry in the "catalina.properties" file implements access control at the package level. When properly configured, a Security Exception will be reported if an errant or malicious webapp attempts to access the listed internal classes directly or if a new class is defined under the protected packages. Performance Charts comes preconfigured with the appropriate packages defined in "package.access", and this configuration must be maintained.
Checks: C-60296r888352_chk

At the command prompt, run the following command: # grep "package.access" /usr/lib/vmware-perfcharts/tc-instance/conf/catalina.properties Expected result: package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.tomcat. If the output of the command does not match the expected result, this is a finding.

Fix: F-60239r888353_fix

Navigate to and open: /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties Ensure the "package.access" line is configured as follows: package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.tomcat. Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must have Multipurpose Internet Mail Extensions (MIMEs) that invoke operating system shell programs disabled.
CM-7 - Medium - CCI-000381 - V-256622 - SV-256622r888357_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000012
Vuln IDs
  • V-256622
Rule IDs
  • SV-256622r888357_rule
MIME mappings tell Performance Charts what type of program various file types and extensions are and what external utilities or programs are needed to execute the file type. By ensuring various shell script MIME types are not included in "web.xml", the server is protected against malicious users tricking the server into executing shell command files.
Checks: C-60297r888355_chk

At the command prompt, run the following command: # grep -En '(x-csh&lt;)|(x-sh&lt;)|(x-shar&lt;)|(x-ksh&lt;)' /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml If the command produces any output, this is a finding.

Fix: F-60240r888356_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Remove any and all of the following nodes lines: <mime-type>application/x-csh</mime-type> <mime-type>application/x-shar</mime-type> <mime-type>application/x-sh</mime-type> <mime-type>application/x-ksh</mime-type> Restart the service with the following command: # vmon-cli --restart perfcharts Note: Delete the entire mime-mapping node for the target mime-type. Example: <mime-mapping> <extension>sh</extension> <mime-type>application/x-sh</mime-type> </mime-mapping>

b
Performance Charts must have mappings set for Java servlet pages.
CM-7 - Medium - CCI-000381 - V-256623 - SV-256623r888360_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000013
Vuln IDs
  • V-256623
Rule IDs
  • SV-256623r888360_rule
Resource mapping is the process of tying a particular file type to a process in the web server that can serve that type of file to a requesting client and identify which file types are not to be delivered to a client. By not specifying which files can and cannot be served to a user, the web server could deliver to a user web server configuration files, log files, password files, etc. Because Tomcat is a Java-based web server, the main file extension used is *.jsp. This check ensures the *.jsp and *.jspx file types have been properly mapped to servlets.
Checks: C-60298r888358_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/servlet-mapping/servlet-name[text()="jsp"]/parent::servlet-mapping' - Expected result: &lt;servlet-mapping&gt; &lt;servlet-name&gt;jsp&lt;/servlet-name&gt; &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt; &lt;url-pattern&gt;*.jspx&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-60241r888359_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Inside the <web-app> parent node, add the following: <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must not have the Web Distributed Authoring (WebDAV) servlet installed.
CM-7 - Medium - CCI-000381 - V-256624 - SV-256624r888363_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000014
Vuln IDs
  • V-256624
Rule IDs
  • SV-256624r888363_rule
WebDAV is an extension to the HTTP protocol that, when developed, was meant to allow users to create, change, and move documents on a server, typically a web server or web share. WebDAV is not widely used and has serious security concerns because it may allow clients to modify unauthorized files on the web server and must therefore be disabled. Tomcat uses the "org.apache.catalina.servlets.WebdavServlet" servlet to provide WebDAV services. Because the WebDAV service has been found to have an excessive number of vulnerabilities, this servlet must not be installed. Performance Charts does not configure WebDAV by default.
Checks: C-60299r888361_chk

At the command prompt, run the following command: # grep -n 'webdav' /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml If the command produces any output, this is a finding.

Fix: F-60242r888362_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Find the <servlet-name>webdav</servlet-name> node and remove the entire parent <servlet> block. Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must be configured with memory leak protection.
CM-7 - Medium - CCI-000381 - V-256625 - SV-256625r888366_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000015
Vuln IDs
  • V-256625
Rule IDs
  • SV-256625r888366_rule
The Java Runtime environment can cause a memory leak or lock files under certain conditions. Without memory leak protection, Performance Chart can continue to consume system resources, which will lead to "OutOfMemoryErrors" when reloading web applications. Memory leaks occur when JRE code uses the context class loader to load a singleton. This will cause a memory leak if a web application class loader happens to be the context class loader at the time. The "JreMemoryLeakPreventionListener" class is designed to initialize these singletons when Tomcat's common class loader is the context class loader. Proper use of JRE memory leak protection will ensure the hosted application does not consume system resources and cause an unstable environment.
Checks: C-60300r888364_chk

At the command prompt, run the following command: # grep JreMemoryLeakPreventionListener /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: &lt;Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-60243r888365_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Navigate to the <Server> node. Add '<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>' to the <Server> node. Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must not have any symbolic links in the web content directory tree.
CM-7 - Medium - CCI-000381 - V-256626 - SV-256626r888369_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCPF-70-000016
Vuln IDs
  • V-256626
Rule IDs
  • SV-256626r888369_rule
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 the user is not accessing information protected outside the application's realm. By checking that no symbolic links exist in the document root, the web server is protected from users jumping outside the hosted application directory tree and gaining access to the other directories, including the system root.
Checks: C-60301r888367_chk

At the command prompt, run the following command: # find /usr/lib/vmware-perfcharts/tc-instance/webapps/ -type l -ls If the command produces any output, this is a finding.

Fix: F-60244r888368_fix

At the command prompt, run the following command: Note: Replace <file_name> for the name of any files that were returned. # unlink <file_name> Repeat the command for each file that was returned.

b
Performance Charts directory tree must have permissions in an out-of-the-box state.
SC-2 - Medium - CCI-001082 - V-256627 - SV-256627r888372_rule
RMF Control
SC-2
Severity
Medium
CCI
CCI-001082
Version
VCPF-70-000017
Vuln IDs
  • V-256627
Rule IDs
  • SV-256627r888372_rule
Accounts on a web server are to be kept to a minimum. Only administrators, web managers, developers, auditors, and web authors require accounts on the machine hosting the web server. The resources to which these accounts have access must also be closely monitored and controlled. Performance Charts files must be adequately protected with correct permissions as applied out of the box. Satisfies: SRG-APP-000211-WSR-000030, SRG-APP-000380-WSR-000072
Checks: C-60302r888370_chk

At the command prompt, run the following command: # find /usr/lib/vmware-perfcharts/tc-instance/webapps/ -xdev -type f -a '(' -not -user root -a -not -user perfcharts -o -not -group root ')' -exec ls -la {} \; If the command produces any output, this is a finding.

Fix: F-60245r888371_fix

At the command prompt, run the following command: # chown root:root <file_name> Repeat the command for each file that was returned. Note: Replace <file_name> for the name of the file that was returned.

b
Performance Charts must fail to a known safe state if system initialization fails, shutdown fails, or aborts fail.
SC-24 - Medium - CCI-001190 - V-256628 - SV-256628r888375_rule
RMF Control
SC-24
Severity
Medium
CCI
CCI-001190
Version
VCPF-70-000018
Vuln IDs
  • V-256628
Rule IDs
  • SV-256628r888375_rule
Determining a safe state for failure and weighing that against a potential denial of service for users depends on what type of application the web server is hosting. For Performance Charts, it is preferable that the service abort startup on any initialization failure rather than continuing in a degraded, and potentially insecure, state.
Checks: C-60303r888373_chk

At the command line, run the following command: # grep EXIT_ON_INIT_FAILURE /usr/lib/vmware-perfcharts/tc-instance/conf/catalina.properties Expected result: org.apache.catalina.startup.EXIT_ON_INIT_FAILURE = true If the output of the command does not match the expected result, this is a finding.

Fix: F-60246r888374_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/catalina.properties Add or change the following line: org.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must limit the number of allowed connections.
SC-5 - Medium - CCI-001094 - V-256629 - SV-256629r888378_rule
RMF Control
SC-5
Severity
Medium
CCI
CCI-001094
Version
VCPF-70-000019
Vuln IDs
  • V-256629
Rule IDs
  • SV-256629r888378_rule
Limiting the number of established connections to Performance Charts is a basic denial-of-service protection. Servers where the limit is too high or unlimited could run out of system resources and negatively affect system availability.
Checks: C-60304r888376_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Connector/@acceptCount' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: acceptCount="300" If the output does not match the expected result, this is a finding.

Fix: F-60247r888377_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Configure the <Connector> node with the value: acceptCount="300" Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must set "URIEncoding" to UTF-8.
SI-10 - Medium - CCI-001310 - V-256630 - SV-256630r888381_rule
RMF Control
SI-10
Severity
Medium
CCI
CCI-001310
Version
VCPF-70-000020
Vuln IDs
  • V-256630
Rule IDs
  • SV-256630r888381_rule
Invalid user input occurs when a user inserts data or characters into a hosted application's data entry field and the hosted application is unprepared to process that data. This results in unanticipated application behavior, potentially leading to an application compromise. Invalid user input is one of the primary methods employed when attempting to compromise an application. An attacker can also enter Unicode characters into hosted applications in an effort to break out of the document home or root home directory or to bypass security checks. Performance Charts must be configured to use a consistent character set via the "URIEncoding" attribute on the Connector nodes.
Checks: C-60305r888379_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Connector/@URIEncoding' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: URIEncoding="UTF-8" If the output does not match the expected result, this is a finding.

Fix: F-60248r888380_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Configure the <Connector> node with the value 'URIEncoding="UTF-8"'. Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must use the "setCharacterEncodingFilter" filter.
SI-10 - Medium - CCI-001310 - V-256631 - SV-256631r888384_rule
RMF Control
SI-10
Severity
Medium
CCI
CCI-001310
Version
VCPF-70-000021
Vuln IDs
  • V-256631
Rule IDs
  • SV-256631r888384_rule
Invalid user input occurs when a user inserts data or characters into a hosted application's data entry field and the hosted application is unprepared to process that data. This results in unanticipated application behavior, potentially leading to an application compromise. Invalid user input is one of the primary methods employed when attempting to compromise an application. An attacker can also enter Unicode characters into hosted applications in an effort to break out of the document home or root home directory or to bypass security checks. VMware uses the standard Tomcat "SetCharacterEncodingFilter" to provide a layer of defense against character encoding attacks. Filters are Java objects that performs filtering tasks on the request to a resource (a servlet or static content), the response from a resource, or both.
Checks: C-60306r888382_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/filter-mapping/filter-name[text()="setCharacterEncodingFilter"]/parent::filter-mapping' - Expected result: &lt;filter-mapping&gt; &lt;filter-name&gt;setCharacterEncodingFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; If the output is does not match the expected result, this is a finding. At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/filter/filter-name[text()="setCharacterEncodingFilter"]/parent::filter' - Expected result: &lt;filter&gt; &lt;filter-name&gt;setCharacterEncodingFilter&lt;/filter-name&gt; &lt;filter-class&gt; org.apache.catalina.filters.SetCharacterEncodingFilter &lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;encoding&lt;/param-name&gt; &lt;param-value&gt;UTF-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;ignore&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;async-supported&gt;true&lt;/async-supported&gt; &lt;/filter&gt; If the output is does not match the expected result, this is a finding.

Fix: F-60249r888383_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml Configure the <web-app> node with the child nodes listed below: <filter-mapping> <filter-name>setCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter-class> org.apache.catalina.filters.SetCharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> <async-supported>true</async-supported> </filter> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must set the welcome-file node to a default web page.
SI-11 - Medium - CCI-001312 - V-256632 - SV-256632r888387_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000022
Vuln IDs
  • V-256632
Rule IDs
  • SV-256632r888387_rule
Enumeration techniques, such as URL parameter manipulation, rely on being able to obtain information about the web server's directory structure by locating directories without default pages. In this scenario, the web server will display to the user a listing of the files in the directory being accessed. By having a default hosted application web page, the anonymous web user will not obtain directory browsing information or an error message that reveals the server type and version. Ensuring every document directory has an "index.jsp" (or equivalent) file is one approach to mitigating the vulnerability.
Checks: C-60307r888385_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/welcome-file-list' - Expected result: &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.html&lt;/welcome-file&gt; &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-60250r888386_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Add the following section under the <web-apps> node: <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must not show directory listings.
SI-11 - Medium - CCI-001312 - V-256633 - SV-256633r888390_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000023
Vuln IDs
  • V-256633
Rule IDs
  • SV-256633r888390_rule
Enumeration techniques, such as URL parameter manipulation, rely on being able to obtain information about the web server's directory structure by locating directories without default pages. In this scenario, the web server will display to the user a listing of the files in the directory being accessed. Ensuring directory listing is disabled is one approach to mitigating the vulnerability.
Checks: C-60308r888388_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '//param-name[text()="listings"]/parent::init-param' - Expected result: &lt;init-param&gt; &lt;param-name&gt;listings&lt;/param-name&gt; &lt;param-value&gt;false&lt;/param-value&gt; &lt;/init-param&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-60251r888389_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Set the <param-value> to "false" in all <param-name>listing</param-name> nodes. Note: The setting should look like the following: <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must be configured to show error pages with minimal information.
SI-11 - Medium - CCI-001312 - V-256634 - SV-256634r888393_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000024
Vuln IDs
  • V-256634
Rule IDs
  • SV-256634r888393_rule
Web servers will often display error messages to client users, including enough information to aid in the debugging of the error. The information given back in error messages may display the web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage. This information could be used by an attacker to blueprint what type of attacks might be successful. Therefore, Performance Charts must be configured with a catchall error handler that redirects to a standard "error.jsp".
Checks: C-60309r888391_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/error-page/exception-type["text()=java.lang.Throwable"]/parent::error-page' - Expected result: &lt;error-page&gt; &lt;exception-type&gt;java.lang.Throwable&lt;/exception-type&gt; &lt;location&gt;/http_error.jsp&lt;/location&gt; &lt;/error-page&gt; If the output does not match the expected result, this is a finding.

Fix: F-60252r888392_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml Add the following section under the <web-apps> node: <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/http_error.jsp</location> </error-page> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must be configured to not show error reports.
SI-11 - Medium - CCI-001312 - V-256635 - SV-256635r888396_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000025
Vuln IDs
  • V-256635
Rule IDs
  • SV-256635r888396_rule
Web servers will often display error messages to client users, including enough information to aid in the debugging of the error. The information given back in error messages may display the web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage. This information could be used by an attacker to blueprint what type of attacks might be successful. Therefore, Performance Charts must be configured with a catchall error handler that redirects to a standard "error.jsp".
Checks: C-60310r888394_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Engine/Host/Valve[@className="org.apache.catalina.valves.ErrorReportValve"]' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: &lt;Valve className="org.apache.catalina.valves.ErrorReportValve" showServerInfo="false" showReport="false"/&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-60253r888395_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Locate the following Host block: <Host ...> ... </Host> Inside this block, add the following on a new line: <Valve className="org.apache.catalina.valves.ErrorReportValve" showServerInfo="false" showReport="false"/> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must hide the server version.
SI-11 - Medium - CCI-001312 - V-256636 - SV-256636r888399_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000026
Vuln IDs
  • V-256636
Rule IDs
  • SV-256636r888399_rule
Web servers will often display error messages to client users, including enough information to aid in the debugging of the error. The information given back in error messages may display the web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage. This information could be used by an attacker to blueprint what type of attacks might be successful. Therefore, Performance Charts must be configured with a catchall error handler that redirects to a standard "error.jsp".
Checks: C-60311r888397_chk

At the command prompt, run the following command: # xmllint --xpath '/Server/Service/Connector/@server' /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Expected result: server="Anonymous" If the output of the command does not match the expected result, this is a finding.

Fix: F-60254r888398_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Configure the <Connector> node with the following value: server="Anonymous" Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must not enable support for TRACE requests.
SI-11 - Medium - CCI-001312 - V-256637 - SV-256637r888402_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000027
Vuln IDs
  • V-256637
Rule IDs
  • SV-256637r888402_rule
"TRACE" is a technique for a user to request internal information about Tomcat. This is useful during product development but should not be enabled in production. Allowing an attacker to conduct a TRACE operation against Performance Charts will expose information that would be useful to perform a more targeted attack. Performance Charts provides the "allowTrace" parameter as means to disable responding to TRACE requests.
Checks: C-60312r888400_chk

At the command prompt, run the following command: # grep allowTrace /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml If "allowTrace" is set to "true", this is a finding. If no line is returned, this is not a finding.

Fix: F-60255r888401_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/server.xml Locate and navigate to 'allowTrace="true"'. Remove the 'allowTrace="true"' setting. Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must have the debug option turned off.
SI-11 - Medium - CCI-001312 - V-256638 - SV-256638r888405_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCPF-70-000028
Vuln IDs
  • V-256638
Rule IDs
  • SV-256638r888405_rule
Information needed by an attacker to begin looking for possible vulnerabilities in a web server includes any information about the web server and plug-ins or modules being used. When debugging or trace information is enabled in a production web server, information about the web server, such as web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage may be displayed. Because this information may be placed in logs and general messages during normal operation of the web server, an attacker does not need to cause an error condition to gain this information. The Performance Charts Service can be configured to set the debugging level. By setting the debugging level to zero, no debugging information will be provided to a malicious user.
Checks: C-60313r888403_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '//param-name[text()="debug"]/parent::init-param' - Expected result: &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; &lt;param-value&gt;0&lt;/param-value&gt; &lt;/init-param&gt; If the output of the command does not match the expected result, this is a finding. If no lines is returned, this is not a finding.

Fix: F-60256r888404_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Navigate to all <debug> nodes that are not set to "0". Set the <param-value> to "0" in all <param-name>debug</param-name> nodes. Note: The debug setting should look like the following: <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must properly configure log sizes and rotation.
AU-4 - Medium - CCI-001849 - V-256639 - SV-256639r888408_rule
RMF Control
AU-4
Severity
Medium
CCI
CCI-001849
Version
VCPF-70-000029
Vuln IDs
  • V-256639
Rule IDs
  • SV-256639r888408_rule
To ensure the logging mechanism used by the web server has sufficient storage capacity in which to write the logs, the logging mechanism must be able to allocate log record storage capacity. Performance Charts properly sizes and configures log rotation during installation. This default configuration must be verified.
Checks: C-60314r888406_chk

At the command prompt, run the following command: # rpm -V VMware-perfcharts|grep log4j|grep "^..5......" If the command returns any output, this is a finding.

Fix: F-60257r888407_fix

Navigate to and open: /etc/vmware-perfcharts/log4j.properties Ensure the appender.rolling entries are configured as follows: appender.rolling.type = RollingFile appender.rolling.name = FileLog appender.rolling.fileName = /var/log/vmware/perfcharts/stats.log appender.rolling.filePattern = /var/log/vmware/perfcharts/stats-%i.log appender.rolling.policies.type = Policies appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.size = 5MB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.max = 10 appender.rolling.layout.type = PatternLayout appender.rolling.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} [%t %-5p %c] %m%n appender.rolling.level = info Note: This fix is currently only applicable to 7.0 U2+ and is different in older versions.

b
Rsyslog must be configured to monitor and ship Performance Charts log files.
AU-9 - Medium - CCI-001348 - V-256640 - SV-256640r888411_rule
RMF Control
AU-9
Severity
Medium
CCI
CCI-001348
Version
VCPF-70-000030
Vuln IDs
  • V-256640
Rule IDs
  • SV-256640r888411_rule
Performance Charts produces several logs that must be offloaded from the originating system. This information can then be used for diagnostic purposes, forensics purposes, or other purposes relevant to ensuring the availability and integrity of the hosted application. Satisfies: SRG-APP-000358-WSR-000163, SRG-APP-000125-WSR-000071
Checks: C-60315r888409_chk

At the command prompt, run the following command: # rpm -V VMware-visl-integration|grep vmware-services-perfcharts.conf|grep "^..5......" If the command returns any output, this is a finding.

Fix: F-60258r888410_fix

Navigate to and open: /etc/vmware-syslog/vmware-services-perfcharts.conf Create the file if it does not exist. Set the contents of the file as follows: #stats input(type="imfile" File="/var/log/vmware/perfcharts/stats.log" Tag="perfcharts-stats" Severity="info" Facility="local0") #localhost_access_log input(type="imfile" File="/var/log/vmware/perfcharts/localhost_access_log.txt" Tag="perfcharts-localhost_access" Severity="info" Facility="local0") #vmware-perfcharts-gc.log input(type="imfile" File="/var/log/vmware/perfcharts/vmware-perfcharts-gc.log.*.current" Tag="perfcharts-gc" Severity="info" Facility="local0") #vmware-perfcharts-runtime.log input(type="imfile" File="/var/log/vmware/perfcharts/vmware-perfcharts-runtime.log.std*" Tag="perfcharts-runtime" Severity="info" Facility="local0")

b
Performance Charts must be configured with the appropriate ports.
CM-7 - Medium - CCI-001762 - V-256641 - SV-256641r888414_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-001762
Version
VCPF-70-000031
Vuln IDs
  • V-256641
Rule IDs
  • SV-256641r888414_rule
Web servers provide numerous processes, features, and functionalities that use TCP/IP ports. Some of these processes may be deemed unnecessary or too unsecure to run on a production system. The ports that Performance Charts listens on are configured in the "catalina.properties" file and must be verified as accurate to their shipping state.
Checks: C-60316r888412_chk

At the command prompt, run the following command: # grep '^bio\.' /usr/lib/vmware-perfcharts/tc-instance/conf/catalina.properties Expected result: bio.http.port=13080 If the output of the command does not match the expected result, this is a finding.

Fix: F-60259r888413_fix

Navigate to and open: /etc/vmware-eam/catalina.properties Navigate to the ports specification section. Add or modify the following lines: bio.http.port=13080 Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must disable the shutdown port.
SC-5 - Medium - CCI-002385 - V-256642 - SV-256642r888417_rule
RMF Control
SC-5
Severity
Medium
CCI
CCI-002385
Version
VCPF-70-000032
Vuln IDs
  • V-256642
Rule IDs
  • SV-256642r888417_rule
An attacker has at least two reasons to stop a web server. The first is to cause a denial of service, and the second is to put in place changes the attacker made to the web server configuration. If the Tomcat shutdown port feature is enabled, a shutdown signal can be sent to Performance Charts through this port. To ensure availability, the shutdown port must be disabled.
Checks: C-60317r888415_chk

At the command prompt, run the following command: # grep base.shutdown.port /usr/lib/vmware-perfcharts/tc-instance/conf/catalina.properties Expected result: base.shutdown.port=-1 If the output of the command does not match the expected result, this is a finding.

Fix: F-60260r888416_fix

Navigate to and open: /etc/vmware-eam/catalina.properties Navigate to the ports specification section. Add or modify the following line: base.shutdown.port=-1 Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts must set the secure flag for cookies.
SC-8 - Medium - CCI-002418 - V-256643 - SV-256643r888420_rule
RMF Control
SC-8
Severity
Medium
CCI
CCI-002418
Version
VCPF-70-000033
Vuln IDs
  • V-256643
Rule IDs
  • SV-256643r888420_rule
The secure flag is an option that can be set by the application server when sending a new cookie to the user within an HTTP response. The purpose of the secure flag is to prevent cookies from being observed by unauthorized parties due to the transmission of a cookie in clear text. By setting the secure flag, the browser will prevent the transmission of a cookie over an unencrypted channel. The Performance Charts is configured to only be accessible over a Transport Layer Security (TLS) tunnel, but this cookie flag is still a recommended best practice.
Checks: C-60318r888418_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/session-config/cookie-config/secure' - Expected result: &lt;secure&gt;true&lt;/secure&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-60261r888419_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/webapps/statsreport/WEB-INF/web.xml Navigate to the <session-config> node and configure it as follows: <session-config> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> <session-timeout>6</session-timeout> </session-config> Restart the service with the following command: # vmon-cli --restart perfcharts

b
Performance Charts default servlet must be set to "readonly".
CM-6 - Medium - CCI-000366 - V-256644 - SV-256644r888423_rule
RMF Control
CM-6
Severity
Medium
CCI
CCI-000366
Version
VCPF-70-000034
Vuln IDs
  • V-256644
Rule IDs
  • SV-256644r888423_rule
The default servlet (or DefaultServlet) is a special servlet provided with Tomcat that is called when no other suitable page is found in a particular folder. The DefaultServlet serves static resources as well as directory listings. The DefaultServlet is configured by default with the "readonly" parameter set to "true" where HTTP commands such as PUT and DELETE are rejected. Changing this to "false" allows clients to delete or modify static resources on the server and to upload new resources. DefaultServlet "readonly" must be set to "true", either literally or by absence (default).
Checks: C-60319r888421_chk

At the command prompt, run the following command: # xmllint --format /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/servlet/servlet-name[text()="default"]/../init-param/param-name[text()="readonly"]/../param-value[text()="false"]' - Expected result: XPath set is empty If the output of the command does not match the expected result, this is a finding.

Fix: F-60262r888422_fix

Navigate to and open: /usr/lib/vmware-perfcharts/tc-instance/conf/web.xml Navigate to the /<web-apps>/<servlet>/<servlet-name>default</servlet-name>/ node and remove the following node: <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> Restart the service with the following command: # vmon-cli --restart perfcharts