Q: Are Qoppa Software developer and server products affected by the recent CVE-2021-44228 – Apache Log4j Vulnerability?
A: NO, the new log4j vulnerability does NOT affect any of the Qoppa Software libraries, components or server products. None of Qoppa’s jar files come packaged with the vulnerable “JndiLookup.class” file, our code actually uses our own custom logger.
We have reviewed and checked all 4 of the recently reported log4j vulnerabilities.
- CVE-2021-44228 (CVSS score: 10.0) – A remote code execution vulnerability affecting Log4j versions from 2.0-beta9 to 2.14.1 (Fixed in version 2.15.0)
- CVE-2021-45046 (CVSS score: 9.0) – An information leak and remote code execution vulnerability affecting Log4j versions from 2.0-beta9 to 2.15.0, excluding 2.12.2 (Fixed in version 2.16.0)
- CVE-2021-45105 (CVSS score: 7.5) – A denial-of-service vulnerability affecting Log4j versions from 2.0-beta9 to 2.16.0 (Fixed in version 2.17.0)
- CVE-2021-4104 (CVSS score: 8.1) – An untrusted deserialization flaw affecting Log4j version 1.2 (No fix available; Upgrade to version 2.17.0)
- CVE-2021-44832 (not yet scored) – A remote code execution attack affecting Log4j versions from 2.0-beta9 to 2.17.0 (Fixed in version 2.17.1)
This applies to ALL Qoppa’s PDF developer and server products:
- Java PDF SDK Libraries
- jOfficeConvert, jPDFAssemble, jPDFFields, jPDFImages, jPDFOptimizer, jPDFPreflight, jPDFPrint, jPDFProcess, jPDFSecure, jPDFText, jPDFWeb, jPDFWriter
- Java PDF Visual Components
- jPDFViewer, jPDFNotes, jPDFEditor
- PDF Automation Server
- Android PDF Toolkit
- qPDF Toolkit
How to check your jars for the vulnerable “JndiLookup.class” file
On Windows you can use the below command line call to search for a class name in all the available jars in the current folder and its subfolders.
forfiles /S /M *.jar /C "cmd /c jar -tvf @file | findstr /C:"JndiLookup.class" && echo @path"
Last Updated: Dec 29, 2021 at 08:00 am EST
Background & Summary
Please see additional details on this security threat below.
On December 9, 2021, a vulnerability was reported by NIST that announced a recent vulnerability (CVE-2021-44228) in the Apache Log4j library. Systems running Apache Log4j version 2.14.1 or below to be compromised and allow an attacker to execute arbitrary code. This module is found in many other software applications which means it can be found in many products and it is trivial to exploit.
More specifically, Java Naming Directory Interface (JNDI) features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from remote servers when message lookup substitution is enabled.
A more detailed explanation of this export can be found at this link: https://www.fortinet.com/blog/psirt-blogs/apache-log4j-vulnerability
CVE Details
CVE-ID
Description
Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property “log4j2.formatMsgNoLookups” to “true” or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class). Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting “com.sun.jndi.rmi.object.trustURLCodebase” and “com.sun.jndi.cosnaming.object.trustURLCodebase” to “false”.
Impacted Versions
Apache Log4j 2.x <= 2.15.0-rc1
CVSS: 10 (CRITICAL)
CVE-ID
Description
It was found that the fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. This could allows attackers with control over Thread Context Map (MDC) input data when the logging configuration uses a non-default Pattern Layout with either a Context Lookup (for example, $${ctx:loginId}) or a Thread Context Map pattern (%X, %mdc, or %MDC) to craft malicious input data using a JNDI Lookup pattern resulting in a denial of service (DOS) attack. Log4j 2.15.0 restricts JNDI LDAP lookups to localhost by default. Note that previous mitigations involving configuration such as to set the system property `log4j2.noFormatMsgLookup` to `true` do NOT mitigate this specific vulnerability. Log4j 2.16.0 fixes this issue by removing support for message lookup patterns and disabling JNDI functionality by default. This issue can be mitigated in prior releases (<2.16.0) by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).
Impacted Versions
Apache Log4j 2.x <= 2.15.0-rc1
CVSS: 3.7 (Low Severity)