BLSA-2017:0046 – [中等] java-1.8.0-openjdk 安全警告及修复方法



  • BLSA-2017:0046 – [中等] java-1.8.0-openjdk 安全警告及修复方法

    问题描述

    最近java-1.8.0-openjdk暴露出一系列安全漏洞,这些漏洞可以被恶意攻击者利用,从而对系统造成危害等等。为了增加系统安全强度,建议所有使用受影响产品的用户都安装BCLinux提供的的更新补丁。

    jdk简介
    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。
    openjdk简介
    OpenJDK是一款只能运行在i386 和AMD-64机器上的软件。OpenJDK做为GPL许可(GPL-licensed)的Java平台的开源化实现,Sun正式发布它已经六年有余。从发布起,Java社区的大众们就又开始努力学习,以适应这个新的开源代码基础(code-base)。
    jdk和openjdk区别
    1.授权协议的不同:
             openjdk采用GPL V2协议放出,而JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
    2.OpenJDK不包含Deployment(部署)功能:
             部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的。
    3.OpenJDK源代码不完整:
             在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码 将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。
    4.部分源代码用开源代码替换:
             由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
    5.openjdk只包含最精简的JDK:
             OpenJDK不包含其他的软件包,比如Rhino Java DB等,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

    影响版本

    • BigCloud Enterprise Linux 7
    • BigCloud Enterprise Linux 6
    • Red Hat Enterprise Linux 7
    • Red Hat Enterprise Linux 6
    • CentOS Linux 7
    • CentOS Linux 6

    详细描述

    安全修复

    • CVE-2017-3511 [中等]
      OpenJDK的JCE组件中存在不可信的库搜索路径漏洞,本地攻击者可以利用这个漏洞,通过让使用JCE库的Java应用程序来加载攻击者控制的库,从而升级其权限。

    • CVE-2017-3526 [中等]
      OpenJDK的JAXP组件在解析XML文档时不能正确地强制解析树的大小限制,恶意攻击者可以利用这个漏洞,通过使Java应用程序解析特制的XML文档,导致其消耗大量的CPU和内存资源。

    • CVE-2017-3509 [中等]
      OpenJDK网络组件中的HTTP客户端实现可以在不同的安全上下文中缓存和重新使用NTLM认证的连接,远程攻击者可以利用这个漏洞使Java应用程序执行HTTP请求时,通过不同用户的凭据进行身份验证。

    • CVE-2017-3539 [中等]
      OpenJDK的Security组件不允许用户限制允许Jar完整性验证的算法集,恶意攻击者利用这个漏洞可以修改使用弱签名密钥或哈希算法的Jar文件内容。

    • CVE-2017-3533 [轻微], CVE-2017-3544 [轻微]
      OpenJDK网络组件中的FTP和SMTP客户端实现中被暴露存在换行注入漏洞,恶意远程攻击者可以利用这个漏洞控制由Java应用程序创建的FTP或SMTP连接。

    漏洞修复

    • BZ#1442162
      当在目标Java虚拟机中使用Java Debug Wire Protocol(JDWP)“invokeMethod”命令调用方法时,JDWP会为方法调用中隐含的每个对象以及引用的返回参数创建全局引用类型,在“invokeMethod”完成后,垃圾回收器没有收集(释放)为这样的参数创建的全局引用,因此会导致内存泄漏,同时由于对这些对象的引用从未被释放,将导致调试的应用程序可能会由于内存不足而终止。

    解决方案

    目前,BCLinux官方源已经可以提供更新的 java-1.8.0-openjdk 软件包。
    BCLinux 6 用户需要升级到1.8.0.131-0.b11.el6版本;
    BCLinux 7 用户需要升级到1.8.0.131-2.b11.el7_3版本。

    BCLinux 7 用户安装更新步骤如下

    1.检查YUM源设置,确保使用的是BCLinux官方YUM源

    [root@BCLinux ~]# ls -l /etc/yum.repos.d/
    total 16
    -rw-r--r--. 1 root root 1127 Jan  7  2016 BCLinux-Base.repo
    -rw-r--r--. 1 root root  794 Jan  7  2016 BCLinux-Kernel.repo
    -rw-r--r--. 1 root root 1153 Jan  7  2016 BCLinux-Source.repo
    -rw-r--r--. 1 root root  801 Jan  7  2016 BigCloud.repo
    

    2.安装更新

    [root@BCLinux ~]# yum update java-1.8.0-openjdk
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.111-1.b15.el7_2 will be updated
    ---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.131-2.b11.el7_3 will be an update
    --> Processing Dependency: java-1.8.0-openjdk-headless = 1:1.8.0.131-2.b11.el7_3 for package: 1:java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64
    --> Processing Dependency: libXcomposite.so.1()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64
    --> Running transaction check
    ---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.111-1.b15.el7_2 will be updated
    ---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.131-2.b11.el7_3 will be an update
    --> Processing Dependency: nss(x86-64) >= 3.28.4 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.el7_3.x86_64
    --> Processing Dependency: copy-jdk-configs >= 1.1-3 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.el7_3.x86_64
    --> Processing Dependency: chkconfig >= 1.7 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.el7_3.x86_64
    --> Processing Dependency: chkconfig >= 1.7 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.el7_3.x86_64
    ---> Package libXcomposite.x86_64 0:0.4.4-4.1.el7 will be installed
    --> Running transaction check
    ---> Package chkconfig.x86_64 0:1.3.61-5.el7 will be updated
    ---> Package chkconfig.x86_64 0:1.7.2-1.el7 will be an update
    ---> Package copy-jdk-configs.noarch 0:1.2-1.el7 will be installed
    ---> Package nss.x86_64 0:3.19.1-18.el7 will be updated
    --> Processing Dependency: nss = 3.19.1-18.el7 for package: nss-sysinit-3.19.1-18.el7.x86_64
    --> Processing Dependency: nss(x86-64) = 3.19.1-18.el7 for package: nss-tools-3.19.1-18.el7.x86_64
    ---> Package nss.x86_64 0:3.28.4-1.0.el7_3 will be an update
    --> Processing Dependency: nss-util >= 3.28.2-1.1 for package: nss-3.28.4-1.0.el7_3.x86_64
    --> Processing Dependency: nss-softokn(x86-64) >= 3.16.2.3-14.2 for package: nss-3.28.4-1.0.el7_3.x86_64
    --> Processing Dependency: nspr >= 4.13.1 for package: nss-3.28.4-1.0.el7_3.x86_64
    --> Processing Dependency: libnssutil3.so(NSSUTIL_3.24)(64bit) for package: nss-3.28.4-1.0.el7_3.x86_64
    --> Processing Dependency: libnssutil3.so(NSSUTIL_3.21)(64bit) for package: nss-3.28.4-1.0.el7_3.x86_64
    --> Running transaction check
    ---> Package nspr.x86_64 0:4.10.8-2.el7_1 will be updated
    ---> Package nspr.x86_64 0:4.13.1-1.0.el7_3 will be an update
    ---> Package nss-softokn.x86_64 0:3.16.2.3-13.el7_1 will be updated
    ---> Package nss-softokn.x86_64 0:3.16.2.3-14.4.el7 will be an update
    --> Processing Dependency: nss-softokn-freebl(x86-64) >= 3.16.2.3-14.4.el7 for package: nss-softokn-3.16.2.3-14.4.el7.x86_64
    ---> Package nss-sysinit.x86_64 0:3.19.1-18.el7 will be updated
    ---> Package nss-sysinit.x86_64 0:3.28.4-1.0.el7_3 will be an update
    ---> Package nss-tools.x86_64 0:3.19.1-18.el7 will be updated
    ---> Package nss-tools.x86_64 0:3.28.4-1.0.el7_3 will be an update
    ---> Package nss-util.x86_64 0:3.19.1-4.el7_1 will be updated
    ---> Package nss-util.x86_64 0:3.28.4-1.0.el7_3 will be an update
    --> Running transaction check
    ---> Package nss-softokn-freebl.x86_64 0:3.16.2.3-13.el7_1 will be updated
    ---> Package nss-softokn-freebl.x86_64 0:3.16.2.3-14.4.el7 will be an update
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===============================================================================================================================================
     Package                                      Arch                    Version                                   Repository                Size
    ===============================================================================================================================================
    Updating:
     java-1.8.0-openjdk                           x86_64                  1:1.8.0.131-2.b11.el7_3                   updates                  233 k
    Installing for dependencies:
     copy-jdk-configs                             noarch                  1.2-1.el7                                 base                      14 k
     libXcomposite                                x86_64                  0.4.4-4.1.el7                             base                      22 k
    Updating for dependencies:
     chkconfig                                    x86_64                  1.7.2-1.el7                               base                     175 k
     java-1.8.0-openjdk-headless                  x86_64                  1:1.8.0.131-2.b11.el7_3                   updates                   31 M
     nspr                                         x86_64                  4.13.1-1.0.el7_3                          updates                  126 k
     nss                                          x86_64                  3.28.4-1.0.el7_3                          updates                  873 k
     nss-softokn                                  x86_64                  3.16.2.3-14.4.el7                         base                     306 k
     nss-softokn-freebl                           x86_64                  3.16.2.3-14.4.el7                         base                     204 k
     nss-sysinit                                  x86_64                  3.28.4-1.0.el7_3                          updates                   58 k
     nss-tools                                    x86_64                  3.28.4-1.0.el7_3                          updates                  496 k
     nss-util                                     x86_64                  3.28.4-1.0.el7_3                          updates                   73 k
    
    Transaction Summary
    ===============================================================================================================================================
    Install             ( 2 Dependent packages)
    Upgrade  1 Package  (+9 Dependent packages)
    
    Total download size: 34 M
    Is this ok [y/d/N]: y
    

    3.复查

    [root@BCLinux ~]# rpm -q java-1.8.0-openjdk
    java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64
    

    4.重启应用

    安装升级包以后,重启应用,更新生效。

    BCLinux 6 用户安装更新步骤如下

    1.检查YUM源设置,确保使用的是BCLinux官方YUM源

    [root@BCLinux ~]#  ls -l /etc/yum.repos.d/
    total 12
    -rw-r--r--. 1 root root  969 Nov 16  2015 BCLinux-Base.repo
    -rw-r--r--. 1 root root 1053 Nov 16  2015 BCLinux-Source.repo
    -rw-r--r--. 1 root root 1184 Nov 16  2015 BigCloud.repo
    

    2.安装更新

    [root@BCLinux ~]# yum update java-1.8.0-openjdk
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Setting up Update Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.101-3.b13.el6_8 will be updated
    ---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.131-0.b11.el6 will be an update
    --> Processing Dependency: java-1.8.0-openjdk-headless = 1:1.8.0.131-0.b11.el6 for package: 1:java-1.8.0-openjdk-1.8.0.131-0.b11.el6.x86_64
    --> Running transaction check
    ---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.101-3.b13.el6_8 will be updated
    ---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.131-0.b11.el6 will be an update
    --> Processing Dependency: nss >= 3.28.3 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-0.b11.el6.x86_64
    --> Running transaction check
    ---> Package nss.x86_64 0:3.15.1-15.el6 will be updated
    --> Processing Dependency: nss = 3.15.1-15.el6 for package: nss-sysinit-3.15.1-15.el6.x86_64
    --> Processing Dependency: nss(x86-64) = 3.15.1-15.el6 for package: nss-tools-3.15.1-15.el6.x86_64
    ---> Package nss.x86_64 0:3.28.4-1.el6 will be an update
    --> Processing Dependency: nss-util >= 3.28.3 for package: nss-3.28.4-1.el6.x86_64
    --> Processing Dependency: nss-softokn(x86-64) >= 3.14.3-22 for package: nss-3.28.4-1.el6.x86_64
    --> Processing Dependency: nspr >= 4.13.0 for package: nss-3.28.4-1.el6.x86_64
    --> Processing Dependency: libnssutil3.so(NSSUTIL_3.24)(64bit) for package: nss-3.28.4-1.el6.x86_64
    --> Processing Dependency: libnssutil3.so(NSSUTIL_3.21)(64bit) for package: nss-3.28.4-1.el6.x86_64
    --> Processing Dependency: libnssutil3.so(NSSUTIL_3.17.1)(64bit) for package: nss-3.28.4-1.el6.x86_64
    --> Running transaction check
    ---> Package nspr.x86_64 0:4.10.0-1.el6 will be updated
    ---> Package nspr.x86_64 0:4.13.1-1.el6 will be an update
    ---> Package nss-softokn.x86_64 0:3.14.3-9.el6 will be updated
    ---> Package nss-softokn.x86_64 0:3.14.3-23.3.el6_8 will be an update
    --> Processing Dependency: nss-softokn-freebl(x86-64) >= 3.14.3-23.3.el6_8 for package: nss-softokn-3.14.3-23.3.el6_8.x86_64
    ---> Package nss-sysinit.x86_64 0:3.15.1-15.el6 will be updated
    ---> Package nss-sysinit.x86_64 0:3.28.4-1.el6 will be an update
    ---> Package nss-tools.x86_64 0:3.15.1-15.el6 will be updated
    ---> Package nss-tools.x86_64 0:3.28.4-1.el6 will be an update
    ---> Package nss-util.x86_64 0:3.15.1-3.el6 will be updated
    ---> Package nss-util.x86_64 0:3.28.4-1.el6 will be an update
    --> Running transaction check
    ---> Package nss-softokn-freebl.x86_64 0:3.14.3-9.el6 will be updated
    ---> Package nss-softokn-freebl.x86_64 0:3.14.3-23.3.el6_8 will be an update
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===============================================================================================================================================
     Package                                      Arch                    Version                                   Repository                Size
    ===============================================================================================================================================
    Updating:
     java-1.8.0-openjdk                           x86_64                  1:1.8.0.131-0.b11.el6                     updates                  200 k
    Updating for dependencies:
     java-1.8.0-openjdk-headless                  x86_64                  1:1.8.0.131-0.b11.el6                     updates                   32 M
     nspr                                         x86_64                  4.13.1-1.el6                              updates                  113 k
     nss                                          x86_64                  3.28.4-1.el6                              updates                  879 k
     nss-softokn                                  x86_64                  3.14.3-23.3.el6_8                         updates                  261 k
     nss-softokn-freebl                           x86_64                  3.14.3-23.3.el6_8                         updates                  167 k
     nss-sysinit                                  x86_64                  3.28.4-1.el6                              updates                   50 k
     nss-tools                                    x86_64                  3.28.4-1.el6                              updates                  445 k
     nss-util                                     x86_64                  3.28.4-1.el6                              updates                   67 k
    
    Transaction Summary
    ===============================================================================================================================================
    Upgrade       9 Package(s)
    
    Total download size: 34 M
    Is this ok [y/N]: y
    

    3.复查

    [root@BCLinux ~]#  rpm -q java-1.8.0-openjdk
    java-1.8.0-openjdk-1.8.0.131-0.b11.el6.x86_64
    

    4.重启应用

    安装升级包以后,重启应用,更新生效。

    外部链接

    1.BCLinux安全更新