背景

2022年3月31日,Spring 官方发布安全公告,披露 CVE-2022-22965 Spring Framework 远程代码执行漏洞。官方已发布安全版本 5.3.18/5.2.20 修复该漏洞。

然后检查下来,发现 Confluence 又一次中招啦。本想着等 Confluence 官方发布新版本直接更新解决,但是都一个月了好像也没动静,估计是这个漏洞被利用的话需要满足很多条件。所以就查了查临时补救办法,最简单的就是更换运行软件的 Java 版本了,只要 JDK 版本 < 9 就没有问题啦。

查看 Confluence 运行 Java 版本

我用的系统是 Ubuntu,在 Confluence 安装时,默认会带有 Java,但不会添加至环境变量。所以执行

java -version

时并没有反馈。

Confluence 安装目录,找到文件 setjre.sh,查看运行的 Java 版本。

1、Go to <install-directory>/bin/setjre.sh file (Linux)
2、Scroll to the bottom of the file and look for a line similar to the following.
The file path may be different in your file.

In Linux:
JRE_HOME="/opt/atlassian/confluence/jre/"; export JRE_HOME

按照上述路径,找到 Confluence 使用的 Java 版本:
image.png
如图显示使用的 JDK11

安装 Java 并修改 Confluence 使用的版本

我选择了 JDK8

apt install openjdk-8-jre-headless

然后修改 setjre.sh 文件

vim /opt/atlassian/confluence/bin/setjre.sh

修改结果:
image.png

保存后重启 Confluence 就可以使用安装的 JDK8 运行啦,这就临时修复了BUG。

需要注意的是,每次升级Confluence后,文件setjre.sh都会被覆盖。也就是说如果官方升级后这个不问题还存在,需要再次修改

参考

https://zhuanlan.zhihu.com/p/498150717
https://confluence.atlassian.com/doc/change-the-java-vendor-or-version-confluence-uses-962342397.html


ARS_HEI
25 声望1 粉丝

No cafe && cola, Before 1AM