Just to correct myself, there is no other CVE in log4j. The new log4j release 
simply disabled JNDI functionality by default, making the fix more robust. My 
apologies.

/Andrew
________________________________
From: Andy Seaborne <a...@apache.org>
Sent: Tuesday, December 14, 2021 4:46 PM
To: users@jena.apache.org
Subject: Re: Log4j2 class loading problems when deploying Fuseki under Tomcat9


On 14/12/2021 14:35, Andrii Berezovskyi wrote:
> Hello Andy,
>
> Thank you so much, this indeed helped, I am now happily running Fuseki 4.3.1 
> under Tomcat 9. I used the 2.16.0 versions of the log4j libraries as they 
> seem to address yet another CVE [1]. I placed the two JARs under /WEB-INF/lib 
> inside the archive in case others on the list are wondering.

Good to know that works.

>
> /Andrew
>
> [1]: https://lists.apache.org/thread/t72msv9cpxw9q5zw8rfkhx52v24z57f1

It's the same CVE 2021-44228.

I understood it to be a better fix (remove all functionality) at the
expense of being a more breaking change. We'll upgarde to 2.16.0.

With 2.15.0 and Jena 4.3.1 server operators have to actively opt-in to
using the suspect "lookup" functionality and by default don't get it.
For Fuseki, that would be need a compromised machine.

> On 2021-12-14, 14:17, "Andy Seaborne" <a...@apache.org> wrote:
>
>      Hi Andrew,
>
>      It looks like a 4.1->4.2 change - that's where log4j-api, and log4j-core
>      stop appearing in the war file.  So not related the log4j chnages this
>      release.
>
>      I haven't found a change that caused this yet. I noticed they were
>      optional while clearing up yesterday yet still getting into the shaded
>      jars which looked odd, so did PR 1113.
>
>      It might be an order-dependent effect in the build or some maven upgrade
>      changed and had an effect on the war-plugin.
>
>      A fix should be to is to edit the war file (it's a zip file) and add the
>      jars into WEB-INF/lib/.
>
>      WEB-INF/lib/log4j-core-2.15.0.jar
>      WEB-INF/lib/log4j-api-2.15.0.jar
>
>      or add to the Tomcat server (untested).
>
>      I've added it to the PR:
>
>      https://github.com/apache/jena/pull/1131
>
>      ----
>
>      Some nearby questions if I may:
>
>      Is the Tomcat installation running only Fuseki?
>
>      Would it be reasonable to distribute the war file via a link from the
>      download page or link in README?
>
>      The apache-jena-fuseki file is getting big because it has two copies of
>      Fuseki in it.
>
>           Andy
>
>      On 14/12/2021 11:40, Andrii Berezovskyi wrote:
>      > Hello,
>      >
>      > I decided to upgrade our Fuseki 3.17.0 running on Tomcat 9 to the 
> latest version released yesterday (thank you, Andy, for your hard work and a 
> late night release!). I ran into the “java.lang.NoClassDefFoundError: 
> org/apache/logging/log4j/Logger” exception. The closest issue I found was 
> https://stackoverflow.com/questions/20909446/caused-by-java-lang-noclassdeffounderror-org-apache-log4j-logger
>  but I don’t think Fuseki WAR file has these problems.
>      >
>      > I am able to start the newest Fuseki server in the standalone mode 
> without problems:
>      >
>      > FUSEKI_BASE=/etc/fuseki sudo 
> /opt/apache-jena-fuseki-4.3.1/fuseki-server
>      > 21:57:56 INFO  Server          :: Apache Jena Fuseki 4.3.1
>      > 21:57:56 INFO  Config          :: 
> FUSEKI_HOME=/opt/apache-jena-fuseki-4.3.1
>      > 21:57:56 INFO  Config          :: FUSEKI_BASE=/etc/fuseki
>      > 21:57:56 INFO  Config          :: Shiro file: 
> file:///etc/fuseki/shiro.ini
>      > 21:57:56 INFO  Config          :: Load configuration: 
> file:///etc/fuseki/configuration/a.ttl
>      > ...
>      > 21:57:57 INFO  Config          :: Load configuration: 
> file:///etc/fuseki/configuration/z.ttl
>      > 21:57:57 INFO  Server          :: Configuration file: 
> /etc/fuseki/config.ttl
>      > 21:57:57 INFO  Server          :: Path = /a
>      > ...
>      > 21:57:57 INFO  Server          :: Path = /z
>      > 21:57:57 INFO  Server          :: System
>      > 21:57:57 INFO  Server          ::   Memory: 4.0 GiB
>      > 21:57:57 INFO  Server          ::   Java:   11.0.11
>      > 21:57:57 INFO  Server          ::   OS:     Linux 5.4.0-91-generic 
> amd64
>      > 21:57:57 INFO  Server          ::   PID:    245617
>      > 21:57:58 INFO  Server          :: Started 2021/12/13 21:57:58 CET on 
> port 3030
>      >
>      > The Tomcat server is quite a vanilla tomcat9 package installation 
> under Ubuntu 20.04 LTS. Do you have an idea where I should look at next? I 
> checked out 
> https://jena.apache.org/documentation/fuseki2/fuseki-webapp.html#fuseki-with-tomcat9-and-systemd
>  and already have the systemd edits suggested. Thank you in advance!
>      >
>      > Tomcat startup info:
>      >
>      > 13-Dec-2021 21:10:46.889 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Server version name:   
> Apache Tomcat/9.0.31 (Ubuntu)
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Server built:          
> Oct 20 2020 12:27:39 UTC
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Server version number: 
> 9.0.31.0
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log OS Name:               
> Linux
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log OS Version:            
> 5.4.0-91-generic
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Architecture:          
> amd64
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Java Home:             
> /usr/lib/jvm/java-11-openjdk-amd64
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           
> 11.0.11+9-Ubuntu-0ubuntu2.20.04
>      > 13-Dec-2021 21:10:46.890 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            
> Ubuntu
>      > 13-Dec-2021 21:10:46.891 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         
> /var/lib/tomcat9
>      > 13-Dec-2021 21:10:46.891 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         
> /usr/share/tomcat9
>      > 13-Dec-2021 21:10:46.939 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> --add-opens=java.base/java.lang=ALL-UNNAMED
>      > 13-Dec-2021 21:10:46.939 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> --add-opens=java.base/java.io=ALL-UNNAMED
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.awt.headless=true
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djdk.tls.ephemeralDHKeySize=2048
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dignore.endorsed.dirs=
>      > 13-Dec-2021 21:10:46.940 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dcatalina.base=/var/lib/tomcat9
>      > 13-Dec-2021 21:10:46.941 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dcatalina.home=/usr/share/tomcat9
>      > 13-Dec-2021 21:10:46.941 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.io.tmpdir=/tmp
>      > 13-Dec-2021 21:10:46.941 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based 
> Apache Tomcat Native library [1.2.23] using APR version [1.6.5].
>      > 13-Dec-2021 21:10:46.941 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 
> capabilities: IPv6 [true], sendfile [true], accept filters [false], random 
> [true].
>      > 13-Dec-2021 21:10:46.941 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL 
> configuration: useAprConnector [false], useOpenSSL [true]
>      > 13-Dec-2021 21:10:46.945 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 
> successfully initialized [OpenSSL 1.1.1f  31 Mar 2020]
>      > 13-Dec-2021 21:10:47.402 INFO [main] 
> org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler 
> ["http-nio-8081"]
>      > 13-Dec-2021 21:10:47.441 INFO [main] 
> org.apache.catalina.startup.Catalina.load Server initialization in [931] 
> milliseconds
>      > 13-Dec-2021 21:10:47.526 INFO [main] 
> org.apache.catalina.core.StandardService.startInternal Starting service 
> [Catalina]
>      > 13-Dec-2021 21:10:47.527 INFO [main] 
> org.apache.catalina.core.StandardEngine.startInternal Starting Servlet 
> engine: [Apache Tomcat/9.0.31 (Ubuntu)]
>      >
>      > Fuseki WAR deployment error:
>      >
>      > 13-Dec-2021 21:11:04.321 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployWAR Deploying web application 
> archive [/var/lib/tomcat9/webapps/fuseki.war]
>      > 13-Dec-2021 21:11:04.373 SEVERE [main] 
> org.apache.catalina.startup.HostConfig.deployWAR Error deploying web 
> application archive [/var/lib/tomcat9/webapps/fuseki.war]
>      >        java.lang.IllegalStateException: Error starting child
>      >              at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
>      >              at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
>      >              at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>      >              at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
>      >              at 
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849)
>      >              at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>      >              at 
> java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>      >              at 
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>      >              at 
> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
>      >              at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
>      >              at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
>      >              at 
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
>      >              at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
>      >              at 
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
>      >              at 
> org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
>      >              at 
> org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
>      >              at 
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
>      >              at 
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
>      >              at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      >              at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
>      >              at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
>      >              at 
> java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>      >              at 
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>      >              at 
> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
>      >              at 
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
>      >              at 
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>      >              at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      >              at 
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
>      >              at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      >              at 
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
>      >              at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      >              at 
> org.apache.catalina.startup.Catalina.start(Catalina.java:633)
>      >              at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      >              at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>      >              at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>      >              at 
> java.base/java.lang.reflect.Method.invoke(Method.java:566)
>      >              at 
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
>      >              at 
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
>      >        Caused by: org.apache.catalina.LifecycleException: Failed to 
> start component 
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fuseki]]
>      >              at 
> org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
>      >              at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
>      >              at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
>      >              ... 37 more
>      >        Caused by: java.lang.NoClassDefFoundError: 
> org/apache/logging/log4j/Logger
>      >              at java.base/java.lang.Class.forName0(Native Method)
>      >              at java.base/java.lang.Class.forName(Class.java:398)
>      >              at 
> org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:203)
>      >              at 
> org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:174)
>      >              at 
> org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1669)
>      >              at 
> org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1137)
>      >              at 
> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)
>      >              at 
> org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
>      >              at 
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
>      >              at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5051)
>      >              at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      >              ... 38 more
>      >        Caused by: java.lang.ClassNotFoundException: 
> org.apache.logging.log4j.Logger
>      >              at 
> org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
>      >              at 
> org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
>      >              ... 49 more
>      > 13-Dec-2021 21:11:04.374 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployWAR Deployment of web 
> application archive [/var/lib/tomcat9/webapps/fuseki.war] has finished in 
> [53] ms
>      >
>      > Best regards,
>      > Andrew
>      >
>

Reply via email to