Child pages
  • PCI Compliance and Software Versions
Skip to end of metadata
Go to start of metadata

Overview

Most PCI compliance scanning systems are based on a specific version number of a software package that contains a reported vulnerability. This document discusses some of the specific software packages that contain known vulnerabilities. It will also help you determine whether developers used the backporting process to patch a software package.

What is backporting?

Backporting allows the operating system vendor to change only the parts of the software that were affected by the security vulnerability. In this way, it avoids the introduction of new features that the developers did not test. This process does not increment the version number. Instead, the developers attach a flag to the package.

Operating system developers often backport updates in order to avoid the need to distribute a new version of the software package.

For example, an operating system developer may combine OpenSSL 0.9.7c with a patch from OpenSSL 0.9.7.d to create OpenSSL 0.9.7c-2. If most PCI scanning systems look for OpenSSL version 0.9.7d or higher, they may incorrectly show OpenSSL 0.9.7c-2 as vulnerable. In this case, you would inform the PCI compliance company that you use a backported version of the software package, which its developers patched for the vulnerability. After you inform them of this, they can record your software version and mark a false positive in the scan results.

OpenSSL

Many different system services and packages use OpenSSL. To check your OpenSSL installation for backporting, perform the following steps:

  1. Determine which OpenSSL package exists on your system. To do this, run the following command:

    rpm -qa | grep openssl

    The following output that is similar to the following example indicates that the version of your OpenSSL package is openssl-0.9.8e-36:

    openssl-0.9.8e-36.el5_11
    openssl-0.9.8e-36.el5_11
  2. To check the RPM change log for vulnerability fixes that that version includes, run the following command:

    rpm --changelog -q openssl-0.9.8b-10.el5 | less
  3. If the RPM change log includes fixes for the CVEs that your PCI compliance scanning company requires, inform them of the patched version and which CVEs it includes so that they can mark it as a false positive.

SSLCipherSuite

To adjust your server for PCI compliance, you must  configure the  SSLCipherSuite  directive's value in WHM's  Apache Global Configuration  interface ( Home >> Service Configuration >> Apache Configuration >> Global Configuration ). If you set the directive's value and PCI compliance scans of port 443 do not pass, it may be due to other SSLCipherSuite entries in your httpd.conf  file. To correct this problem, perform the following steps:

  1. Check for additional SSLCipherSuite entries in the  httpd.conf file. To do this, run the following command:

    grep  -i sslciphersuite /usr/local/apache/conf/httpd.conf
  2. Check your VirtualHosts. To do this, run the following command:

    grep sslciphersuite /var/cpanel/userdata/*/*_SSL
  3. If this step returns any results, remove the SSLCipherSuite entries that already exist. To do this, run the following command:

    perl -pi -e 's{sslciphersuite:.*}{}ms;' path/to/file/from/step/2
  4. After you remove any SSLCipherSuite entries, rebuild your httpd.conf file. To do this, run the following command:

    /scripts/rebuildhttpdconf
  5. Confirm that only one global SSLCipherSuite entry exists. To do this, run the following command:

    grep -i sslciphersuite /usr/local/apache/conf/httpd.conf
  6. If only one global entry exists, restart Apache. To do this, run the following command:

    /scripts/restartsrv_httpd
  7. Rescan port 443 for PCI compliance

OpenSSH

To determine which OpenSSH package exists on your system, run the following command:

rpm -qa | grep openssh

The output that resembles the following example indicates that your OpenSSH package's version is openssh-5.3p1-94.e16:

openssh-clients-5.3p1-94.el6.i686
openssh-server-5.3p1-94.el6.i686
openssh-5.3p1-94.el6.i686

This output indicates that openssh-5.3pl-94.e16 is your OpenSSH version. This OpenSSH version may result in a PCI scan that returns the following two vulnerabilities:

  • OpenSSH J-PAKE Session Key Retrieval Vulnerability — This issue does not affect OpenSSH as shipped with RedHat Enterprise Linux® (RHEL) versions 6 and 7. For more information, read CVE-2010-4478 on RedHat's web site.
  • OpenSSH "child_set_env()" Security Bypass Issue —This issue minimally impacts security and does not pose a severe risk to most systems. Even though this OpenSSH version 6.6 addressed this issue, the RHEL repositories do not contain this updated version. If you wish to update OpenSSH to the new version, you must install it manually.

mod_frontpage

Warnings:

  • This section is only relevant if you run cPanel & WHM version 11.44 and earlier. We discontinued support for FrontPage in cPanel & WHM version 11.46.
  • We strongly recommend that you do not install FrontPage. No upstream development team supports this module, which reached End Of Life. We recommend that you publish content with a different method, such as FTP or WebDAV.

PCI scans may report the Apache mod_frontpage module as a vulnerability, due to a buffer overflow error that may cause privilege escalation, which includes root access. The vulnerability exists in a default Apache installation, but not in cPanel & WHM's environment.

A typical scan returns results that resemble the following example:

TCP 443 https 7
The remote host is using the Apache
 mod_frontpage module. mod_frontpage older than 1.6.1 is vulnerable to a
 buffer overflow which may allow an attacker to gain root access. Since 
we are not able to remotely determine the version of mod_frontpage you 
are running, you are advised to manually check which version you are 
running as this may be a false positive. If you want the remote server 
to be remotely secure, we advise you do not use this module at all.
Solution: Disable this module
Risk Factor: High
CVE : CVE-2002-0427

 

Exim

cPanel & WHM includes patches that help to make Exim PCI compliant. The RPM change log includes information about these patches.

Simple Mail Transfer Protocol

PCI Compliance requires email client encryption. Your email client provides SSL and TLS encryption. To enable encryption of your SMTP transactions, perform the following steps as the root user:

  1. Navigate to WHM's Exim Configuration Manager interface (Home >> Service Configuration >> Exim Configuration Manager).
  2. Enable the Require clients to connect with SSL or issue the STARTTLS command before they are allowed to authenticate with the server. option.
  3. Click Save.

Backported CVEs

To view the CVE-related fixes in your version of Exim, run the following command:

rpm -q --changelog exim | grep CVE

The output will display the CVE number, for example:

fix for CVEs CVE-2010-2024, CVE-2010-2023
Update CVE-2011-0017 patch to fix use of -C flag by unprivileged users.
CVE-2011-0017: Backport patch from EXIM 4.74 for arbitrary file overwrite bug.
CVE-2010-4344: Apply string_format buffer overflow patch
CVE-2010-4345: Compile with ALT_CONFIG_PREFIX=/etc/exim
CVE-2010-4345: Compile with ALT_CONFIG_PREFIX=/etc

To report the CVE fixes that your Exim installation includes, send the output that reflects the patched software to the PCI scanning company.

Bind

Although cPanel & WHM does not create BIND, all cPanel servers include BIND by default. Vendor updates will typically resolve PCI compliance issues.

BIND CVE-2011-4313

The BIND change log does not show CVE-2011-4313 directly. Instead, the change log shows under RHEL #754398.

Run the following command to test for the presence of this fix:

rpm -q --changelog bind | grep 754398

Your output should resemble the following example:

- fix DOS against recursive servers (#754398)

 

To report the CVE fixes that your BIND installation includes, send the output that reflects the patched software to the PCI scanning company.

Hide the BIND Version

To become PCI compliant, you must hide the BIND version on your server.

To do this, perform the following steps:

  1. Connect to the server via SSH as the root user.
  2. Edit the /etc/named.conf file and add the following line of code to the options section:

    version "";
  3. Use the following command to restart BIND:

    /scripts/restartsrv_named
  4. Rescan your server with your account on the PCI company's website.

Hide the DNS Server Hostname

To become PCI compliant, you must hide your DNS server’s hostname.

To do this, perform the following steps:

  1. Connect to the server via SSH as the root user.
  2. Edit /etc/named.conf and add the following line of code to the options section:

    hostname "";
  3. Use the following command to restart BIND:

    /scripts/restartsrv_named
  4. Rescan your server with your account on the PCI company's website.

Mailman

You can completely disable Mailman when you scan for PCI Compliance.

To disable Mailman, perform the following steps:

  1. Log in to WHM as the root user.
  2. In the Mail section of WHM's Tweak Settings interface (Home >> Server Configuration >> Tweak Settings), set the Enable Mailman mailing lists setting to Off.
  3. Click Save.

If you do not want to disable Mailman, perform the following steps to pass a PCI Compliance scan:

  1. Log in to to the server as the root user via SSH.

  2. Create the following file to deny web requests for Mailman:

    /usr/local/cpanel/3rdparty/mailman/cgi-bin/.htaccess

    The contents of the file should appear similar to the following example:

     <Limit GET POST> 
     order deny, allow 
     <deny from all> 
     </Limit> 
     
    <Limit PUT DELETE> 
     order deny, allow 
     <deny from all> 
     </Limit> 
  3. Rescan your server with your account on the PCI company's website.