Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8241248

NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)

XMLWordPrintable

    • b22
    • x86
    • linux
    • Not verified

        ADDITIONAL SYSTEM INFORMATION :
        Ubuntu 18.04, Tomcat 9.0.30

        A DESCRIPTION OF THE PROBLEM :
        Running a Tomcat server with TLSv1.2 and TLSv1.3 only enabled I see the following stack traces in the logs:

        Jan 30, 2020 8:47:54 PM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor doRun
        SEVERE: Error running socket processor
        java.lang.NullPointerException
                at java.base/sun.security.ssl.HKDF.extract(HKDF.java:93)
                at java.base/sun.security.ssl.HKDF.extract(HKDF.java:119)
                at java.base/sun.security.ssl.ServerHello.setUpPskKD(ServerHello.java:1203)
                at java.base/sun.security.ssl.ServerHello$T13ServerHelloProducer.produce(ServerHello.java:559)
                at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:440)
                at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1252)
                at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1188)
                at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:851)
                at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:812)
                at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
                at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
                at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1260)
                at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1247)
                at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
                at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1192)
                at org.apache.tomcat.util.net.SecureNioChannel.tasks(SecureNioChannel.java:443)
                at org.apache.tomcat.util.net.SecureNioChannel.handshakeUnwrap(SecureNioChannel.java:507)
                at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:238)
                at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575)
                at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                at java.base/java.lang.Thread.run(Thread.java:830)


        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        According to Tomcat developers (https://bz.apache.org/bugzilla/show_bug.cgi?id=64105) this is related to TLSv1.3 clients. I'm not sure which client triggers it, at the moment I don't have a way to reliably trigger this bug.


        FREQUENCY : occasionally

        WORKAROUND:
        Disable TLSv1.3 and running with TLSv1.2 only. Or use OpenSSL for the encryption.

              abakhtin Alexey Bakhtin
              pnarayanaswa Praveen Narayanaswamy
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: