背景
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
版本:
如图显示使用的 JDK11
。
安装 Java
并修改 Confluence
使用的版本
我选择了 JDK8
apt install openjdk-8-jre-headless
然后修改 setjre.sh
文件
vim /opt/atlassian/confluence/bin/setjre.sh
修改结果:
保存后重启 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。