
Azul State of Java Survey and Report 2023

Using Runtime Visibility for Rapid Remediation of Java Vulnerabilities

Are Security Leaders Overconfident About the State of Their Java Security?

Log4j (short for Apache log4j) is a Java-based logging utility that is widely used for creating and managing logs in Java applications. It is an open-source framework maintained by the Apache Software Foundation. Log4j allows developers to easily configure logging output to different destinations such as the console, files, databases, and remote servers.
Apache Log4j is named after its function, which is logging messages in a software application. The “Log” in “Log4j” refers to the act of logging, which is the process of recording information about events in a software application. The “4j” in “Log4j” stands for “for Java”, which indicates that it is a logging framework for the Java programming language. The “Apache” part of the name refers to the fact that Log4j is an open-source project that is managed by the Apache Software Foundation. The Apache Software Foundation is a non-profit organization that supports the development of open-source software projects. Log4j was originally developed by Ceki Gülcü in 1996, and it became an Apache project in 2004. Since then, Log4j has become one of the most widely used logging frameworks in the Java ecosystem, and it has been used in many popular software applications and libraries.
The Log4j vulnerability, also known as CVE-2021-44228 or as Log4Shell, was a critical security flaw discovered in the Log4j library in December 2021. The vulnerability allowed attackers to execute arbitrary code remotely by exploiting a flaw in the library’s handling of user-supplied data.
Specifically, the vulnerability was found in the Log4j 2.x branch, which is widely used in Java-based applications, and was caused by a flaw in the library’s support for the JNDI (Java Naming and Directory Interface) feature. This feature allows applications to access naming and directory services, but the vulnerability allowed an attacker to inject malicious code into the system by exploiting the JNDI feature.
The vulnerability quickly gained widespread attention due to its severity and potential impact on a wide range of applications and systems. Many organizations immediately began taking steps to patch the vulnerability, and software vendors rushed to release updates and patches to protect their users.
The Log4j vulnerability and its exploits highlighted the importance of promptly addressing and mitigating security vulnerabilities in third-party libraries and underscored the need for strong software security practices to prevent and detect such issues.
Below are a few strategies that can help combat the log4j exploit:
The Apache Log4j logging framework was infected with a set of security vulnerabilities known collectively as the Log4Shell CVE (Common Vulnerabilities and Exposures). These vulnerabilities can allow attackers to execute arbitrary code on vulnerable systems, which can lead to a range of potential risks below.
Overall, the log4j CVE represents a significant threat to organizations that use the Apache Log4j logging framework, and it is important for organizations to take immediate steps to mitigate the risk of the exploit.
Azul Vulnerability Detection leverages the JVM to build an inventory of what code is running and where. This inventory is continuously built from running applications rather than scanning them, providing a more complete and accurate inventory of where vulnerable code is. Additionally, the JVM provides context for where a vulnerable library like log4j is in active use, taking priority over locations where the library is present but not used. Many Java applications contain transitive dependencies to are present but cannot actually load.
Continuously detect known vulnerabilities
in your Java applications in production.