The Effects of the TLS Session Renegotiation Vulnerability on Red Hat Directory Server 7.1

Updated -

Issue

A problem with session renegotiation was found in Secure Sockets Layer (SSL) version 3 and Transport Layer Security (TLS) version 1 protocols. An attacker could insert plain text as a prefix to communication between a client and server using a session renegotiation request. Red Hat Enterprise Linux has assigned this issue CVE-2009-3555, and numerous fixes are outlined in "Is Red Hat affected by TLS renegotiation MITM attacks (CVE-2009-3555)?"

During an SSL/TLS connection, either the server or the client can request that the session be renegotiated to do something like renew the session keys, select a different cipher suite for encryption, or authenticate to a resource using a certificate. An attacker could theoretically send a request to a server. Then, the attacker could trigger a renegotiation request in some way (such as trying to access a protected resource), and this text was prefixed to the legitimate request from the client. This is similar to a man-in-the-middle attack; Eric Rescorla's blog post "Understanding the TLS Renegotiation Attack" called it a blind prefix injection attack since the attacker inserted data without being able to decrypt the data sent between the server and client. The SSL/TLS protocol didn't provide a mechanism to verify that the session peers hadn't changed in the renegotiation process, so it was possible for a server to accept the request from the attacker because it didn't verify that the renegotiation request came from the client and only the client. (One thing to note: practical potential attacks using this flaw have only been identified for HTTPS.)

Red Hat Directory Server uses TLS/SSL for client connections (such as Admin Express, the Directory Server Console, tools such as ldapmodify,and servers like Red Hat Certificate System) as well as server-to-server connections for operations like replication, chaining, and Windows Sync.

For Red Hat Directory Server, support for SSL/TLS is implemented through the operating system's Network Security Services (NSS). To prevent the blind prefix injection attack, these system NSS packages have been updated.

Environment

The TLS vulnerability affects Directory Server 7.1 on the following platforms:

  • Red Hat Enterprise Linux 3 and 4

  • Sun Solaris 9

Resolution

A compressed file with the updated packages for Directory Server 7.1 is available from SEG.

NOTE: There is a README available with the hot fix package. Read that file before applying the hot fix.

For Red Hat Enterprise Linux 3 and Sun Solaris 9

  1. Stop the Directory and Admin Servers. The Directory Server stop and start scripts are in the serverRoot/instance directory, which is /opt/redhat-ds/slapd- name by default. The Admin Server stop and start scripts are in the serverRoot, which is /opt/redhat-ds by default. For example:
/opt/redhat-ds/slapd-example/stop-slapd
/opt/redhat-ds/stop-admin
  1. Unzip the package containing the hot fix.

    On Red Hat Enterprise Linux, the package will be a .zip file named rhds_mitm.zip.

    unzip rhds_mitm.zip
    

    On Sun Solaris, the package will be a .tar file named rhds_mitm.tar.Z.

    zcat rhds_mitm.tar.Z | tar xf -
    
  2. Execute rebase_nss_and_nspr.

./rebase_nss_and_nspr
  1. Start the Directory and Admin servers.
/opt/redhat-ds/slapd-example/start-slapd
/opt/redhat-ds/start-admin

For Red Hat Enterprise Linux 4

  1. Stop the Directory and Admin Servers. The Directory Server stop and start scripts are in the serverRoot/instance directory, which is /opt/redhat-ds/slapd- name by default. The Admin Server stop and start scripts are in the serverRoot, which is /opt/redhat-ds by default. For example:
/opt/redhat-ds/slapd-example/stop-slapd
/opt/redhat-ds/stop-admin
  1. Unzip the package containing the hot fix. On Red Hat Enterprise Linux, the package will be a .zip file named rhds_mitm.zip.

    unzip rhds_mitm.zip
    
  2. Execute rebase_nss_and_nspr to update the NSS and NSPR packages.

./rebase_nss_and_nspr
  1. Apply the JRE patch by executing replace_jre. This prompts for some required information and then replaces all Console packages.
./replace_jre
  1. Start the Directory and Admin servers.
/opt/redhat-ds/slapd-example/start-slapd
/opt/redhat-ds/start-admin

Comments