Reported by: Gianluca Bonetti <gianluca.bonetti@gmail.com>
Date: Mon, 4 May 2020 20:03:02 UTC
Severity: grave
Tags: debian
Found in version 8.5.54-0+deb9u1
Done: Mark Hindley <mark@hindley.org.uk>
Forwarded to https://bugs.debian.org/959747
🔗 View this message in rfc822 format
MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) X-Loop: owner@bugs.devuan.org From: "Devuan bug Tracking System" <owner@bugs.devuan.org> To: Mark Hindley <mark@hindley.org.uk> Subject: bug#437: marked as done (tomcat8: Tomcat8 fix for CVE-2020-1938 breaks compatibility with Apache2 mod_proxy_ajp) Message-ID: <handler.437.D437.1719904233514.ackdone@bugs.devuan.org> References: <ZoOnr82LI9QWkEkY@hindley.org.uk> <158862207573.24044.3823604338219569371.reportbug@sys3.prometeoinformatica.it> X-Devuan-PR-Message: closed 437 X-Devuan-PR-Package: tomcat8 X-Devuan-PR-Keywords: debian Reply-To: 437@bugs.devuan.org Date: Tue, 02 Jul 2024 07:12:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1719904321-541-0"
[Message part 1 (text/plain, inline)]
Your message dated Tue, 2 Jul 2024 08:09:35 +0100 with message-id <ZoOnr82LI9QWkEkY@hindley.org.uk> and subject line Closed in in Debian #959747 has caused the Devuan bug report #437, regarding tomcat8: Tomcat8 fix for CVE-2020-1938 breaks compatibility with Apache2 mod_proxy_ajp to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.devuan.org immediately.) -- 437: https://bugs.devuan.org/cgi/bugreport.cgi?bug=437 Devuan Bug Tracking System Contact owner@bugs.devuan.org with problems
[Message part 2 (message/rfc822, inline)]
From: Gianluca Bonetti <gianluca.bonetti@gmail.com>To: Devuan Bug Tracking System <submit@bugs.devuan.org>Subject: tomcat8: Tomcat8 fix for CVE-2020-1938 breaks compatibility with Apache2 mod_proxy_ajpDate: Mon, 04 May 2020 21:54:35 +0200Package: tomcat8 Version: 8.5.54-0+deb9u1 Severity: grave Dear Maintainer, Last tomcat8 upgrade, fixing CVE-2020-1938, is breaking the functionalities of Tomcat AJP connector in standard setup. The updated tomcat8 version implements 'secretRequired' parameter in <Connector> tag for config file /etc/tomcat8/server.xml (attached by reportbut) and the implicit default for 'secretRequired' is true. The default value is not explicitly marked in the standard server.xml, nor documented there. However, current apache2 package version 2.4.25-3+deb9u9 does not support secret in mod_proxy_ajp. Hence, to get a working system using AJP, secretRequired has to be set to false in server.xml Apache2 mod_proxy_ajp supports secret since version 2.5, backported to 2.4.42. https://httpd.apache.org/docs/trunk/mod/mod_proxy_ajp.html https://httpd.apache.org/docs/2.4/mod/mod_proxy_ajp.html The solution is either to upgrade the apache2 package, or to have the default for 'secretRequired' set to 'false', with some comments in the server.xml itself. The standard configuration accepts AJP connections from localhost only, and/or iptables rules can applied as well. Adding relevant part of catalina.out to this bug report. Thank you Cheers Gianluca Bonetti -- System Information: Debian Release: 9 Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-12-amd64 (SMP w/8 CPU cores) Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages tomcat8 depends on: ii adduser 3.115 ii debconf [debconf-2.0] 1.5.61 ii lsb-base 4.1+devuan2 ii tomcat8-common 8.5.54-0+deb9u1 ii ucf 3.0036 Versions of packages tomcat8 recommends: ii authbind 2.1.2 ii libtcnative-1 1.2.21-1~deb9u1 Versions of packages tomcat8 suggests: pn tomcat8-admin <none> pn tomcat8-docs <none> pn tomcat8-examples <none> pn tomcat8-user <none> -- Configuration Files: /etc/tomcat8/server.xml changed: <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Note: A "Server" is not itself a "Container", so you may not define subcomponents such as "Valves" at this level. Documentation at /docs/config/server.html --> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <!-- Security listener. Documentation at /docs/config/listeners.html <Listener className="org.apache.catalina.security.SecurityListener" /> --> <!--APR library loader. Documentation at /docs/apr.html --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <!-- Prevent memory leaks due to use of particular java/javax APIs--> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <!-- Global JNDI resources Documentation at /docs/jndi-resources-howto.html --> <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <!-- A "Service" is a collection of one or more "Connectors" that share a single "Container" Note: A "Service" is not itself a "Container", so you may not define subcomponents such as "Valves" at this level. Documentation at /docs/config/service.html --> <Service name="Catalina"> <!--The connectors can use a shared executor, you can define one or more named thread pools--> <!-- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> --> <!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <!-- A "Connector" using the shared thread pool--> <!-- <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 This connector uses the NIO implementation. The default SSLImplementation will depend on the presence of the APR/native library and the useOpenSSL attribute of the AprLifecycleListener. Either JSSE or OpenSSL style configuration may be used regardless of the SSLImplementation selected. JSSE style configuration is used below. --> <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector> --> <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2 This connector uses the APR/native implementation which always uses OpenSSL for TLS. Either JSSE or OpenSSL style configuration may be used. OpenSSL style configuration is used below. --> <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" > <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeyFile="conf/localhost-rsa-key.pem" certificateFile="conf/localhost-rsa-cert.pem" certificateChainFile="conf/localhost-rsa-chain.pem" type="RSA" /> </SSLHostConfig> </Connector> --> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" secretRequired="false" address="127.0.0.1" port="8009" redirectPort="8443" /> <!-- An Engine represents the entry point (within Catalina) that processes every request. The Engine implementation for Tomcat stand alone analyzes the HTTP headers included with the request, and passes them on to the appropriate Host (virtual host). Documentation at /docs/config/engine.html --> <!-- You should set jvmRoute to support load-balancing via AJP ie : <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> --> <Engine name="Catalina" defaultHost="localhost"> <!--For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <!-- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> --> <!-- Use the LockOutRealm to prevent attempts to guess user passwords via a brute-force attack --> <Realm className="org.apache.catalina.realm.LockOutRealm"> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server> -- debconf information: tomcat8/username: tomcat8 tomcat8/javaopts: -Djava.awt.headless=true -Xms8g -Xmx8g -XX:+UseG1GC -Dserver=1 -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n tomcat8/groupname: tomcat8 -- catalina.out: 04-May-2020 19:49:31.629 GRAVE [main] org.apache.catalina.core.StandardService.startInternal Failed to start connector [Connector[AJP/1.3-8009]] org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1086) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:766) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:688) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474) Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid. at org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:274) at org.apache.catalina.connector.Connector.startInternal(Connector.java:1083) ... 12 more 04-May-2020 19:49:31.630 INFORMAZIONI [main] org.apache.catalina.startup.Catalina.start Server startup in 6947 ms
[Message part 3 (message/rfc822, inline)]
From: Mark Hindley <mark@hindley.org.uk>To: 437-done@bugs.devuan.orgSubject: Closed in in Debian #959747Date: Tue, 2 Jul 2024 08:09:35 +0100Tomcat8 removed in Debian. Closing related bugs. Mark
Send a report that this bug log contains spam.
Devuan BTS -- Powered by Debian bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.
Devuan Bugs Owner <owner@bugs.devuan.org>.
Last modified:
Sat Nov 23 10:37:46 2024;