Jump to content

Reload4j

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Man thinking (talk | contribs) at 10:16, 18 May 2022 (Updates about Kafka, release of version 1.2.21). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
reload4j
Original author(s)QOS.CH Sarl (Switzerland)
Stable release
1.2.26[1] Edit this on Wikidata / 15 December 2024
Repositorygithub.com/qos-ch/reload4j
Written inJava
TypeLogging
Websitereload4j.qos.ch

Reload4j[2] was created by the original author of log4j 1.x, Ceki Gülcü. Reload4j is a fork of log4j version 1.2.17. It preserves the same java package name space, in this case org.apache.log4j. However, for reasons of trademark protection, it is published under the "ch.qos.reload4j" groupId[3] in Apache Maven Central. It can be thus considered as a drop-in replacement for log4j.[4][5][6][7][8]

The aim of the reload4j project is to provide an very easy migration path[9] to those users wishing to correct log4j 1.x security issues.[10] For many companies this is a requirement by the FTC.[11] Upgrading to a newer version of log4j 1.x is not possible since the project has been declared EOL[12] by the Apache Software Foundation. This decision was reaffirmed in 2022[13] and could not be rescinded despite the best efforts of several volunteers.[14][15][16] Instead, the Log4j2 team incomprehensibly claims that deadlocks and other problems are impossible to fix. They further claim that the only safe way is to upgrade to log4j 2.x.[13] Log4j 2.x has a considerably different API and configuration style. While some users see the benefit, the pertinence of reload4j and the necessity of a fork is subject of debate.[17]

As of May 17th, 2022, according to mvnrepository.com,[18] 122 projects have already migrated to reload4j and 124 projects to slf4j-reload4j, among them prestigious projects such as ActiveMQ, Eclipse, Kafka[19], MyBatis and WildFly, just to name a few.

Fixed vulnerabilities

Reload4j fixes all known Common Vulnerabilities and Exposures (CVE) log4j 1.x as listed below:

  • CVE-2021-4104[20]
  • CVE-2019-17571[21]
  • CVE-2022-23302 (SQL injection vulnerability in JDBCAppender)
  • CVE-2020-9493 aka CVE-2022-23307
  • CVE-2020-9488 As of version 1.2.18.3, all CVEs reported against log4j 1.x have been fixed. Given the much smaller surface area of reload4j compared to log4j 2.x, new CVEs are less likely to be discovered.

Given that log4j 1.x did not perform variable lookup within messages, log4j 1.x was not affected by Log4Shell (CVE-2021-44228), a zero-day remote code execution vulnerability affecting Log4J 2.x.

First release and features

Version 1.2.18.0 of reload4j was released on January the 12th, 2022 and is available for public consumption.[22]

Reload4j 1.2.18 does not add any new features with respect to log4j 1.2.17 although future versions are likely to provide backward compatible performance improvements.

As of 12.18.5, all reload4j releases are reproducible. In other words, building from source will yield bit-wise identical results as the published binaries.

Version 1.2.20 fixes a performance related issue on a critical execution path. Future releases of reload4j are likely to bring further performance improvements.

Version 1.2.21 fixes binary compatibility issue between earlier versions of reload4j and slf4j-log4j12. While it is recommended to use slf4j-reload4j as the preferred SLF4J adapter for reload4j, with version 1.2.21+ you can freely mix any version of slf4j-log4j12, if you need to do so.

slf4j-reload4j module

Subsequent to the first release of reload4j, the SLF4J project has released SLF4J version 1.7.33[23] with direct support for reload4j via the slf4j-reload4j module.[24]

As of version 1.7.35, SLF4J slf4j-log4j12 was replaced by slf4j-reload4j. By virtue of Maven relocation attribute, references to slf4j-log4j12 of will be automatically redirected to use slf4j-reload4j.

References

  1. ^ "Release 1.2.26". 15 December 2024. Retrieved 28 December 2024.
  2. ^ "reload4j". reload4j.qos.ch. Retrieved 2022-01-14.
  3. ^ "Maven – Guide to Naming Conventions". maven.apache.org. Retrieved 2022-01-14.
  4. ^ Elschner, Michaela. "log4j 1.x: reload4j for the rescue!". www.linkedin.com. Retrieved 2022-02-14.
  5. ^ "Axon Ivy platform migrating to reload4j". Twitter. Retrieved 2022-02-17.
  6. ^ Grigg, Kadi. "Wicked Good Development - Episode 1". blog.sonatype.com. Retrieved 2022-02-16.
  7. ^ Sohn, Matthias. "[cross-project-issues-dev] reload4j 1.2.18 fixing pressing issues of log". www.eclipse.org. Retrieved 2022-02-16.
  8. ^ Onofré, Jean-Baptiste. "Apache ActiveMQ 5.16.4, reload4j and more". Apache ActiveMQ 5.16.4, reload4j and more. Retrieved 2022-02-16.
  9. ^ "Vulnerabilities in Log4j - Continued". Field Effect Software Inc. Retrieved 2022-01-29.
  10. ^ "SLF4J". www.slf4j.org. Retrieved 2022-01-16.
  11. ^ "FTC warns companies to remediate Log4j security vulnerability". Federal Trade Commission. 2022-01-04. Retrieved 2022-01-14.
  12. ^ "Apache™ Logging Services™ Project Announces Log4j™ 1 End-Of-Life; Recommends Upgrade to Log4j 2". Apache Logging Services.
  13. ^ a b Ron, Grabowski (2022-01-06). "Log4j 1 End-of-Life Statement". lists.apache.org. Apache Logging Services.{{cite web}}: CS1 maint: url-status (link)
  14. ^ "Looking for a champion: resurrect log4j 1.x".{{cite web}}: CS1 maint: url-status (link)
  15. ^ "[DISCUSS][VOTE] Future of Log4j 1.x". lists.apache.org. Retrieved 2022-01-14.{{cite web}}: CS1 maint: url-status (link)
  16. ^ "standardizing the Maven build". lists.apache.org. Retrieved 2022-01-14.{{cite web}}: CS1 maint: url-status (link)
  17. ^ hugith (2022-01-17). "Reload4j. A drop-in replacement for log4j 1.2.17 (with the security issues fixed)". r/java. Retrieved 2022-01-17.
  18. ^ "Maven Repository: reload4j". mvnrepository.com. Retrieved 2022-02-21.
  19. ^ "Apache Kafka (3.2.0 release notes)". Apache Kafka. Retrieved 2022-05-18.
  20. ^ CVE.report; CVE. "CVE-2021-4104". CVE.report. Retrieved 2022-01-14.
  21. ^ CVE.report; CVE. "CVE-2019-17571". CVE.report. Retrieved 2022-01-14.
  22. ^ "Central Repository: ch/qos/reload4j/reload4j". repo.maven.apache.org. Retrieved 2022-01-14.
  23. ^ SLF4J.ORG (2022-01-13). "Release of version 1.7.33". SLF4J. SLF4J.ORG.{{cite web}}: CS1 maint: numeric names: authors list (link)
  24. ^ "Reload4jLoggerAdapter (SLF4J 2.0.0-alpha6 API)". www.slf4j.org. Retrieved 2022-01-14.