WebLogic 10.3.6.0更新2020年三季度补丁集
1. 漏洞说明
Oracle官方于2020年7月14日发布了针对Oracle WebLogic中间件安全漏洞的第三季度累积修复补丁集。
受影响的主流WebLogic中间件版本如上图列表supported version Affected 所示,职责范围内涉及的weblogic具体版本号如下:
- Oracle WebLogic 10.3.6.0.0
- Oracle WebLogic 12.2.1.3.0
2. 补丁软件准备
MOS登录查看相关Patches信息:
Product |
Patch |
Advisory Number |
Oracle |
Oracle Java SE Upgrade to JDK 7 Update 261 |
Note 2682801.1, Oracle Critical Patch Update CPU) July 2020 for Oracle Java SE |
|
||
Download locations and installation instructions in above document |
||
WLS PATCH SET UPDATE 10.3.6.0.200714 Patch 31178492 + ADR FOR WEBLOGIC SERVER 10.3.6 JULY CPU 2020 Patch 31241365 |
CVE-2020-2967, CVE-2020-14588, CVE-2020-14589, CVE-2020-14622, CVE-2020-2966, CVE-2017-5645, CVE-2020-14572, CVE-2020-14652, CVE-2018-11058, CVE-2020-14645 |
可以看出本次weblogic10.3.6的7月份补丁包包括一个累积的补丁包Patch 31178492和Patch 31241365。
此外,根据官方发布的最新漏洞修复补丁说明,WebLogic中间件除需要更新最新的安全漏洞修复补丁集之外,还需要升级JDK的版本。升级的版本说明如下:
l Oracle WebLogic 12.2.1.3.0、12.2.1.4.0、14.1.1.0.0,JDK版本需要升级到1.8.0_251;
l Oracle WebLogic 10.3.6.0,JDK版本需要升级1.7.0_261.
备注:
1)升级JDK的时候,切勿跨大版本(1.7升级到1.8,1.6升级到1.7)升级,否则可能导致部分业务给你不可用。
2)建议平行升级,即1.7.0_xxx升级到1.7.0_261,1.8.0_xxx升级到1.8.0_251。
3. 备份
tar -zcvf weblogic.tar.gz2020716 /weblogic/web11g36
全量备份weblogic和程序包,一定要具备可回退可逆操作;
并停止待修复系统的Weblogic服务。
4. 修改bsu内存设置
设置bsu.sh脚本的JVM内存为4G
[weblogic@localhost bsu]$ vi bsu.sh
#!/bin/sh
JAVA_HOME="/home/jdk1.7.0_80"
MEM_ARGS="-Xms4096m -Xmx4096m"
"$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*
5. 上传补丁包
查看bsu目录下是否存在cache_dir目录;如果不存在,则新建(mkdir cache_dir)该目录;然后上传补丁包至该cache_dir目录:
p31178492_1036_Generic.zip
p31241365_1036_Linux-x86-64.zip
6. weblogic打补丁
说明:因为weblogic10.3.6是全量补丁包,需要卸载之前安装的上一个补丁包,才能安装新补丁,否则会提示补丁冲突。
6.1卸载冲突补丁
cd /weblogic/web11g36/utils/bsu
[root@pxc1 bsu]# ./bsu.sh -prod_dir=/weblogic/web11g36/wlserver_10.3 -patchlist=Q3ZB -verbose -remove
6.2补丁升级
[root@pxc1 cache_dir]# unzip p31241365_1036_Linux-x86-64.zip
root@pxc1bsu]#./bsu.sh -install -prod_dir=/weblogic/web11g36/wlserver_10.3 -patchlist=I37G
[root@pxc1 cache_dir]# unzip p31178492_1036_Generic.zip
[root@pxc1 bsu]# ./bsu.sh -install -prod_dir=/weblogic/web11g36/wlserver_10.3 -patchlist=CW7X
补丁升级完成后,重启weblogic服务。
6.3补丁升级验证
补丁升级后通过以下几种方法验证补丁是否按照成功:
a)控制台验证版本信息
如图所示:Weblogic10.3.6 2020年7月PSU PATCH补丁已经安装。
b)通过weblogic server启动过程中查看版本信息:10.3.6.0.200714 PSU Patch for BUG31178492
C) 通过weblogic 补丁配置文件查看版本信息
d)补丁查询命令验证
7. 测试验证
7.1补丁升级后,服务启动情况
测试结果:weblogic10.3.6执行本次远程代码漏洞修复后,服务启动正常。
7.2补丁升级后,应用程序健康状态
本次测试应用程序包TestWas.war健康状况 OK。
7.3补丁升级后,应用程序能否正常访问
测试结果:weblogic10.3.6执行本次远程代码漏洞修复后,应用程序包健康状态 OK,应用访问正常。
8. 报错处理
补丁升级过程中常见错误基本有两类:
1) 内存溢出报错
排查解决思路,检测是否有weblogic进程服务还在运行,这样在执行bsu.sh 补丁升级过程中很容易内存溢出。
如果weblogic进程服务已经停止,还是内存溢出,就需要分析当前top 内存资源使用率高的进程是否是bsu.sh 补丁升级的进程,并适当的扩大bsu.sh脚本里的内存使用限制。
2) 检测补丁冲突,且冲突补丁包卸载不了
补丁冲突卸载不了的情况,
可将patch-registry.xml里的<id></id> 行置空解决补丁冲突,冲突补丁又卸载不了问题。
9. 回退方案
如果业务系统执行本次远程代码漏洞修复升级后,存在服务启动异常报错、无法启动、业务不可用等情况,且与确定本次远程代码漏洞修复有关,可将进程停掉.
然后将最新的weblogic安装目录重命名,然后将之前备份的tar包解压,即可快速恢复。
#mv web11g36 web11g36_20200716bak
#tar -xvf weblogic.tar.gz2020716
或者执行补丁卸载,步骤如下所示:
Uninstalling Oracle WebLogic Server Patch Set Update 10.3.6.0.200114
1、Stop all WebLogic Servers
2、Navigate to the {MW_HOME}/utils/bsu directory.
3、Execute bsu.sh -remove -patchlist={PATCH_ID} -prod_dir={MW_HOME}/{WL_HOME}
sh bsu.sh -prod_dir=/weblogic/bea/wlserver_10.3 -verbose -remove -patchlist=JWEB
4 、Restart all WebLogic Servers.