Skip to content

Commit de9f4fa

Browse files
authored
GEODE-10580: Remediate CVE-2026-34478 - Improper Output Neutralization for Logs (#8006)
Upgrade Apache Log4j from 2.25.3 to 2.25.4 on support/1.15 to remediate CVE-2026-34478 (CVSS 6.9 MEDIUM). Also corrects stale Log4j version references (2.17.2, 2.12.0, 2.5) missed during the prior GEODE-10544 upgrade. VULNERABILITY: Log4j Core's Rfc5424Layout (versions 2.21.0 through 2.25.3) is vulnerable to log injection via CRLF sequences due to undocumented renames of security-relevant configuration attributes (CWE-117, CWE-684). Two issues affect users of stream-based syslog services: - The newLineEscape attribute was silently renamed, disabling newline escaping for TCP framing (RFC 6587) and exposing CRLF injection. - The useTlsMessageFormat attribute was silently renamed, silently downgrading TLS framing (RFC 5425) to unframed TCP without newline escaping. REMEDIATION: Updated all Log4j dependency references to 2.25.4 across dependency constraints, build files, expected POM, resource files, and documentation. Corrected stale 2.17.2/2.12.0/2.5 references that were missed by the prior GEODE-10544 upgrade. References: https://nvd.nist.gov/vuln/detail/CVE-2026-34478 apache/logging-log4j2#4074 https://logging.apache.org/security.html#CVE-2026-34478
1 parent fec34bd commit de9f4fa

9 files changed

Lines changed: 32 additions & 32 deletions

File tree

boms/geode-all-bom/src/test/resources/expected-pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -530,27 +530,27 @@
530530
<dependency>
531531
<groupId>org.apache.logging.log4j</groupId>
532532
<artifactId>log4j-api</artifactId>
533-
<version>2.17.2</version>
533+
<version>2.25.4</version>
534534
</dependency>
535535
<dependency>
536536
<groupId>org.apache.logging.log4j</groupId>
537537
<artifactId>log4j-core</artifactId>
538-
<version>2.17.2</version>
538+
<version>2.25.4</version>
539539
</dependency>
540540
<dependency>
541541
<groupId>org.apache.logging.log4j</groupId>
542542
<artifactId>log4j-jcl</artifactId>
543-
<version>2.17.2</version>
543+
<version>2.25.4</version>
544544
</dependency>
545545
<dependency>
546546
<groupId>org.apache.logging.log4j</groupId>
547547
<artifactId>log4j-jul</artifactId>
548-
<version>2.17.2</version>
548+
<version>2.25.4</version>
549549
</dependency>
550550
<dependency>
551551
<groupId>org.apache.logging.log4j</groupId>
552552
<artifactId>log4j-slf4j-impl</artifactId>
553-
<version>2.17.2</version>
553+
<version>2.25.4</version>
554554
</dependency>
555555
<dependency>
556556
<groupId>org.apache.lucene</groupId>

build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class DependencyConstraints {
3939
deps.put("fastutil.version", "8.5.8")
4040
deps.put("javax.transaction-api.version", "1.3")
4141
deps.put("jgroups.version", "3.6.20.Final")
42-
deps.put("log4j.version", "2.25.3")
42+
deps.put("log4j.version", "2.25.4")
4343
deps.put("micrometer.version", "1.9.1")
4444
deps.put("shiro.version", "1.13.0")
4545
deps.put("slf4j-api.version", "1.7.36")

geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repositories {
2525

2626
dependencies {
2727
compile("${project.group}:geode-core:${project.version}")
28-
runtime('org.apache.logging.log4j:log4j-slf4j-impl:2.12.0')
28+
runtime('org.apache.logging.log4j:log4j-slf4j-impl:2.25.4')
2929
}
3030

3131
application {

geode-assembly/src/integrationTest/resources/assembly_content.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,11 +1031,11 @@ lib/jna-5.11.0.jar
10311031
lib/jna-platform-5.11.0.jar
10321032
lib/joda-time-2.10.14.jar
10331033
lib/jopt-simple-5.0.4.jar
1034-
lib/log4j-api-2.17.2.jar
1035-
lib/log4j-core-2.17.2.jar
1036-
lib/log4j-jcl-2.17.2.jar
1037-
lib/log4j-jul-2.17.2.jar
1038-
lib/log4j-slf4j-impl-2.17.2.jar
1034+
lib/log4j-api-2.25.4.jar
1035+
lib/log4j-core-2.25.4.jar
1036+
lib/log4j-jcl-2.25.4.jar
1037+
lib/log4j-jul-2.25.4.jar
1038+
lib/log4j-slf4j-impl-2.25.4.jar
10391039
lib/lucene-analyzers-common-6.6.6.jar
10401040
lib/lucene-analyzers-phonetic-6.6.6.jar
10411041
lib/lucene-core-6.6.6.jar

geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ jackson-datatype-jsr310-2.21.2.jar
2828
jackson-databind-2.21.2.jar
2929
swagger-annotations-2.2.1.jar
3030
jopt-simple-5.0.4.jar
31-
log4j-slf4j-impl-2.17.2.jar
32-
log4j-core-2.17.2.jar
33-
log4j-jcl-2.17.2.jar
34-
log4j-jul-2.17.2.jar
35-
log4j-api-2.17.2.jar
31+
log4j-slf4j-impl-2.25.4.jar
32+
log4j-core-2.25.4.jar
33+
log4j-jcl-2.25.4.jar
34+
log4j-jul-2.25.4.jar
35+
log4j-api-2.25.4.jar
3636
spring-context-5.3.20.jar
3737
spring-core-5.3.20.jar
3838
lucene-analyzers-phonetic-6.6.6.jar

geode-docs/managing/logging/configuring_log4j2.html.md.erb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ You can also configure Log4j 2 to work with various popular and commonly used lo
3636
3737
For example, if you are using:
3838
39-
- **Commons Logging**, download "Commons Logging Bridge" (`log4j-jcl-2.17.2.jar`)
40-
- **SLF4J**, download "SLFJ4 Binding" (`log4j-slf4j-impl-2.17.2.jar`)
41-
- **java.util.logging**, download the "JUL adapter" (`log4j-jul-2.17.2.jar`)
39+
- **Commons Logging**, download "Commons Logging Bridge" (`log4j-jcl-2.25.4.jar`)
40+
- **SLF4J**, download "SLFJ4 Binding" (`log4j-slf4j-impl-2.25.4.jar`)
41+
- **java.util.logging**, download the "JUL adapter" (`log4j-jul-2.25.4.jar`)
4242
4343
See [http://logging.apache.org/log4j/2.x/faq.html](http://logging.apache.org/log4j/2.x/faq.html) for more examples.
4444
45-
All three of the above JAR files are in the full distribution of Log4J 2.17.2 which can be downloaded at [http://logging.apache.org/log4j/2.x/download.html](http://logging.apache.org/log4j/2.x/download.html). Download the appropriate bridge, adapter, or binding JARs to ensure that <%=vars.product_name%> logging is integrated with every logging API used in various third-party libraries or in your own applications.
45+
All three of the above JAR files are in the full distribution of Log4J 2.25.4 which can be downloaded at [http://logging.apache.org/log4j/2.x/download.html](http://logging.apache.org/log4j/2.x/download.html). Download the appropriate bridge, adapter, or binding JARs to ensure that <%=vars.product_name%> logging is integrated with every logging API used in various third-party libraries or in your own applications.
4646
4747
**Note:**
48-
<%=vars.product_name_long%> has been tested with Log4j 2.17.2. As newer versions of Log4j 2 come out, you can find 2.17.2 under Previous Releases on that page.
48+
<%=vars.product_name_long%> has been tested with Log4j 2.25.4. As newer versions of Log4j 2 come out, you can find 2.25.4 under Previous Releases on that page.
4949
5050
## Customizing Your Own log4j2.xml File
5151

geode-docs/managing/logging/how_logging_works.html.md.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ limitations under the License.
2121
2222
<%=vars.product_name%> uses [Apache Log4j 2](http://logging.apache.org/log4j/2.x/) API and Core libraries as the basis for its logging system. Log4j 2 API is a popular and powerful front-end logging API used by all the <%=vars.product_name%> classes to generate log statements. Log4j 2 Core is a backend implementation for logging; you can route any of the front-end logging API libraries to log to this backend. <%=vars.product_name%> uses the Core backend to run three custom Log4j 2 Appenders: **GeodeConsole**, **GeodeLogWriter**, and **GeodeAlert**.
2323
24-
<%=vars.product_name%> has been tested with Log4j 2.17.2.
24+
<%=vars.product_name%> has been tested with Log4j 2.25.4.
2525
<%=vars.product_name%> requires the
26-
`log4j-api-2.17.2.jar` and `log4j-core-2.17.2.jar`
26+
`log4j-api-2.25.4.jar` and `log4j-core-2.25.4.jar`
2727
JAR files to be in the classpath.
2828
Both of these JARs are distributed in the `<path-to-product>/lib` directory and included in the appropriate `*-dependencies.jar` convenience libraries.
2929

geode-docs/tools_modules/http_session_mgmt/weblogic_setting_up_the_module.html.md.erb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ If you are deploying an ear file:
108108
lib/geode-serialization.1.0.0.jar
109109
lib/javax.transaction-api-1.3.jar
110110
lib/jgroups-3.6.8.Final.jar
111-
lib/log4j-api-2.5.jar
112-
lib/log4j-core-2.5.jar
113-
lib/log4j-jul-2.5.jar
111+
lib/log4j-api-2.25.4.jar
112+
lib/log4j-core-2.25.4.jar
113+
lib/log4j-jul-2.25.4.jar
114114
```
115115
116116
## <a id="weblogic_setting_up_the_module__section_20294A39368D4402AEFB3D074E8D5887" class="no-quick-link"></a>Peer-to-Peer Setup

geode-server-all/src/integrationTest/resources/dependency_classpath.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ jetty-http-9.4.57.v20241219.jar
4242
geode-memcached-0.0.0.jar
4343
rmiio-2.1.2.jar
4444
geode-tcp-server-0.0.0.jar
45-
log4j-jcl-2.17.2.jar
45+
log4j-jcl-2.25.4.jar
4646
geode-connectors-0.0.0.jar
4747
jackson-core-2.21.2.jar
4848
jetty-util-9.4.57.v20241219.jar
49-
log4j-slf4j-impl-2.17.2.jar
49+
log4j-slf4j-impl-2.25.4.jar
5050
lucene-analyzers-common-6.6.6.jar
5151
geode-membership-0.0.0.jar
5252
jetty-webapp-9.4.57.v20241219.jar
@@ -55,21 +55,21 @@ jopt-simple-5.0.4.jar
5555
swagger-annotations-2.2.0.jar
5656
snappy-0.4.jar
5757
geode-wan-0.0.0.jar
58-
log4j-api-2.17.2.jar
58+
log4j-api-2.25.4.jar
5959
geode-serialization-0.0.0.jar
6060
istack-commons-runtime-4.0.1.jar
6161
lucene-queryparser-6.6.6.jar
6262
jetty-io-9.4.57.v20241219.jar
6363
geode-deployment-legacy-0.0.0.jar
6464
commons-beanutils-1.11.0.jar
65-
log4j-core-2.17.2.jar
65+
log4j-core-2.25.4.jar
6666
shiro-crypto-core-1.13.0.jar
6767
jaxb-api-2.3.1.jar
6868
geode-unsafe-0.0.0.jar
6969
spring-shell-1.2.0.RELEASE.jar
7070
jaxb-impl-2.3.2.jar
7171
jna-platform-5.11.0.jar
72-
log4j-jul-2.17.2.jar
72+
log4j-jul-2.25.4.jar
7373
HdrHistogram-2.1.12.jar
7474
jackson-annotations-2.21.jar
7575
micrometer-core-1.9.1.jar

0 commit comments

Comments
 (0)