This is an automated email from the ASF dual-hosted git repository.

frankgh pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-analytics.git


The following commit(s) were added to refs/heads/trunk by this push:
     new d9eda711 CASSANALYTICS-109: Address LZ4 vulnerability (CVE-2025-12183) 
(#161)
d9eda711 is described below

commit d9eda711541439c8c44fdd2e87ee99b1e04f509f
Author: Francisco Guerrero <[email protected]>
AuthorDate: Thu Dec 4 16:37:57 2025 -0800

    CASSANALYTICS-109: Address LZ4 vulnerability (CVE-2025-12183) (#161)
    
    Patch by Francisco Guerrero; reviewed by Yifan Cai for CASSANALYTICS-109
---
 CHANGES.txt                                                   |  1 +
 cassandra-analytics-core/build.gradle                         |  2 --
 .../apache/cassandra/spark/utils/XXHash32DigestAlgorithm.java | 11 +++++------
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 56c088f4..96c200ef 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
 0.2.0
 -----
+ * Address LZ4 vulnerability (CVE-2025-12183) (CASSANALYTICS-109)
  * Add TimeRangeFilter to filter out SSTables outside given time window 
(CASSANALYTICS-102)
  * Generated distribution artifacts fix (CASSANALYTICS-105)
  * Fix SSTable descriptor mismatch preventing newly produced SSTables from 
being uploaded (CASSANALYTICS-98)
diff --git a/cassandra-analytics-core/build.gradle 
b/cassandra-analytics-core/build.gradle
index 0114f2ff..259c3252 100644
--- a/cassandra-analytics-core/build.gradle
+++ b/cassandra-analytics-core/build.gradle
@@ -91,8 +91,6 @@ dependencies {
     runtimeOnly(group: 'net.java.dev.jna', name: 'jna', version: 
"${jnaVersion}")
     runtimeOnly(group: 'net.java.dev.jna', name: 'jna-platform', version: 
"${jnaVersion}")
 
-    implementation(group: 'org.lz4', name: 'lz4-java', version: '1.8.0') // 
for xxhash
-
     if ("${scalaMajorVersion}" == "2.11") {
         implementation(group: 'org.scala-lang.modules', name: 
"scala-java8-compat_2.11", version: '1.0.1', transitive: false)
     }
diff --git 
a/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/utils/XXHash32DigestAlgorithm.java
 
b/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/utils/XXHash32DigestAlgorithm.java
index e6918b22..82de9e0f 100644
--- 
a/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/utils/XXHash32DigestAlgorithm.java
+++ 
b/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/utils/XXHash32DigestAlgorithm.java
@@ -24,8 +24,8 @@ import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
-import net.jpountz.xxhash.StreamingXXHash32;
-import net.jpountz.xxhash.XXHashFactory;
+import org.apache.commons.codec.digest.XXHash32;
+
 import org.apache.cassandra.spark.common.Digest;
 import org.apache.cassandra.spark.common.XXHash32Digest;
 
@@ -51,9 +51,8 @@ public class XXHash32DigestAlgorithm implements 
DigestAlgorithm
     public Digest calculateFileDigest(Path path) throws IOException
     {
         // might have shared hashers with ThreadLocal
-        XXHashFactory factory = XXHashFactory.safeInstance();
-        try (InputStream inputStream = Files.newInputStream(path);
-             StreamingXXHash32 hasher = factory.newStreamingHash32(SEED))
+        XXHash32 hasher = new XXHash32(SEED);
+        try (InputStream inputStream = Files.newInputStream(path))
         {
             int len;
             byte[] buffer = new byte[KIB_512];
@@ -61,7 +60,7 @@ public class XXHash32DigestAlgorithm implements 
DigestAlgorithm
             {
                 hasher.update(buffer, 0, len);
             }
-            return new XXHash32Digest(Integer.toHexString(hasher.getValue()), 
SEED);
+            return new XXHash32Digest(Long.toHexString(hasher.getValue()), 
SEED);
         }
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to