Apache JServ Protocol (AJP) and XPPWS/Tomcat on Red Hat EL

Our IT people reached out to me about Apache JServ Protocol (AJP) being part of the Apache Tomcat package we installed for XPPWS 1.3 on RHEL. They said, "During a security review it was found that the version installed has a known issue. Tomcat was the source of the install."

(If I should open a support ticket, let me know.)

The main question I have: "Is AJP enabled in Tomcat for XPPWS, or is it perhaps just part of the Tomcat package and not implemented for use with XPPWS? If the latter is true, it is safe for IT to just disable the AJP Connector?"

Note, we are on RHEL 5.5-5.7 and XPP 8.4 (yes, I know, ancient), but on Tomcat 7.0.55 and we are using XPPWS 1.3 (SOAP)

Here is the security review verbiage that IT passed along to me:

>>When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Tomcat treats AJP connections as having higher trust than, for example, a similar HTTP connection. If such connections are available to an attacker, they can be exploited in ways that may be surprising.

>>In Apache Tomcat 9.0.0.M1 to, 8.5.0 to 8.5.50 and 7.0.0 to 7.0.99, Tomcat shipped with an AJP Connector enabled by default that listened on all configured IP addresses. It was expected (and recommended in the security guide) that this Connector would be disabled if not required.

>>This vulnerability report identified a mechanism that allowed: - returning arbitrary files from anywhere in the web application - processing any file in the web application as a JSP Further, if the web application allowed file upload and stored those files within the web application (or the attacker was able to control the content of the web application by some other means) then this, along with the ability to process a file as a JSP, made remote code execution possible.

>>It is important to note that mitigation is only required if an AJP port is accessible to untrusted users. Users wishing to take a defence-in-depth approach and block the vector that permits returning arbitrary files and execution as JSP may upgrade to Apache Tomcat 9.0.31, 8.5.51 or 7.0.100 or later. A number of changes were made to the default AJP Connector configuration in 9.0.31 to harden the default configuration. It is likely that users upgrading to 9.0.31, 8.5.51 or 7.0.100 or later will need to make small changes to their configurations.

IT: I think the key part is "It is important to note that mitigation is only required if an AJP port is accessible to untrusted users."


-Jay Baldwin, Tweddle Group

  • I'm not completely up to date on Tomcat internals, but it is my understanding that "AJP" is a connector optimizer for better serialization of the Java traffic. XPPWS does not take advantage of this directly and just uses SOAP messages through the HTTP traffic to implement web services. Under the hood, Tomcat takes advantage of it, but can obviously run without it.  So I believe that you can disable AJP without affecting XPPWS. Coming from older versions of Tomcat, there have been some configurations changes that need to be made when you move to newer versions, so your best bet is to disable it.