DataStax cassandra核心驱动器依赖脆弱的Guava-19

问题描述 投票:6回答:2

DataStax cassandra core java驱动器对guava-19(包括最新的DataStax)具有传递依赖性,该安全漏洞具有安全性(CVE-2018-10237)。

为了解决这个问题,当我尝试从DataStax驱动器中排除guava-19.0依赖项并替换为guava-27.1-jre时,我在运行时遇到了以下错误,并通过反编译最新的番石榴驱动程序确认了相同的错误;从guava-20.0看起来他们删除了FutureFallback类,并且没有向后兼容最新的cassandra驱动器。

java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback

任何帮助或快速修复或替代是非常值得注意的。

security cassandra datastax datastax-enterprise datastax-java-driver
2个回答
2
投票

该漏洞涉及番石榴类AtomicDoubleArrayCompoundOrdering;我们不在驱动程序中使用它们。

我们已经解决了JAVA-1328中的番石榴兼容性问题。驱动程序与16.0.1最新兼容,有一个内部兼容层来解决19中的重大变化。我刚刚尝试了一个简单的客户端,它将依赖性覆盖到27.1-jre,事情按预期工作。

你是如何测试的,你错误的堆栈跟踪是什么?


1
投票

我确实有同样的问题和解决方法是从3个地方忽略番石榴,不仅仅是来自司机。以下是您的修复示例。它对我有用,我现在正在使用Guava 27。

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>${datastax.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-mapping</artifactId>
    <version>${datastax.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-extras</artifactId>
    <version>${datastax.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

之后你可以使用自己的番石榴,如下所示:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>${guava.version}</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.