DataStax Cassandra核心驱动程序依赖于易受攻击的Guava-19。

7

DataStax Cassandra core Java driver有一个传递依赖于guava-19(包括最新的DataStax),该版本存在安全漏洞(CVE-2018-10237)。

为了解决这个问题,我尝试在DataStax驱动程序中排除guava-19.0依赖项,并替换为guava-27.1-jre,但在运行时出现以下错误,并通过反编译最新的guava驱动程序进行确认;看起来从guava-20.0开始,他们删除了FutureFallback类,并且与最新的Cassandra驱动程序不兼容。

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

任何帮助、快速修复或替代方法都会受到高度赞赏。

什么是0-day?理论上,Java驱动程序不应受此CVE的影响。 - Alex Ott
明白了,已经更正了!谢谢。但是我们有任何更新或时间表吗?"shouldn't be affected" 怎么说? - lambodar
1
我已经要求开发团队提供评论。 - Alex Ott
2个回答

2
这段话的大意是:该漏洞与Guava类AtomicDoubleArray和CompoundOrdering有关;我们驱动程序中没有使用它们。我们已经解决了JAVA-1328中的Guava兼容性问题。该驱动程序与16.0.1到最新版本兼容,有一个内部兼容性层来解决19中的破坏性变化。我刚刚尝试了一个简单的客户端,将依赖项覆盖为27.1-jre,结果如预期一样工作。请问您是如何测试的?错误的堆栈跟踪信息是什么?

1
我遇到了完全相同的问题,解决方法是忽略Guava不仅在驱动程序中,还要在其他三个位置。以下是修复示例,保留HTML标签。它对我有效,现在我正在使用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>

稍后您可以像下面这样使用自己的Guava:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>${guava.version}</version>
</dependency>

你的cassandra-driver-core版本是什么? - Phanindra Gopishetty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接