我的项目通过我项目中使用的org.mobicents.servlet.sip包作为直接依赖项对 log4j v1.2.16 具有传递依赖关系。
但是org.mobicents.servlet.sip不再积极开发。
除了等待org.mobicents.servlet.sip来修复这个问题之外,还有什么方法可以修复这个漏洞。
我的项目通过我项目中使用的org.mobicents.servlet.sip包作为直接依赖项对 log4j v1.2.16 具有传递依赖关系。
但是org.mobicents.servlet.sip不再积极开发。
除了等待org.mobicents.servlet.sip来修复这个问题之外,还有什么方法可以修复这个漏洞。
您可能想要使用log4j-1.2-api 网桥。去做这个
<dependencies>
<dependency>
<groupId>org.mobicents.servlet.sip</groupId>
<artifactId>sip-servlets-spec</artifactId>
<exclusions>
<exclusion>
<groupId>log4j</groupId><artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.17.1</version></dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-1.2-api</artifactId><version>2.17.1</version></dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.17.1</version></dependency>
如果您使用 Maven 作为构建工具,那么您可以做的一种方法是:
<dependencies>
<dependency>
<groupId>org.mobicents.servlet.sip</groupId>
<artifactId>sip-servlets-spec</artifactId>
<version>4.0.128</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
</dependencies>
您还可以参考maven 文档以获得详细说明。
最终的解决方案是分解 log4j-1.2.17.jar,删除受影响的类SocketServer.class
和JMSAppender.class
,创建一个自定义 jar 并使用它。
用于爆炸和创建新 jar 的命令取自以下 stackoverflow 答案