安全预警:独立发布的Oracle严重 CVE-2018-3110 公告

在 2018年8月10日,Oracle 独立的发送了一封"安全警告"邮件给所有的 Oracle 用户,这封邮件的标题是:Oracle Security Alert for CVE-2018-3110。这也是今年 Oracle 第一次独立针对一个 CVE 安全风险发布预警。

正常情况下,Oracle 每个季度发布一次安全补丁更新,今年的下一次发布应该在10月16日。所以针对 CVE-2018-3110 的预警就非常值得大家重视。

CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,CVE因此成为了安全信息共享的“关键字”。在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。

预警的邮件内容如下:

影响范围和版本

CVE-2018-3110 影响范围是所有当前在支持的数据库版本,但是一部分版本已经在2018年7月的CPU中修订,所以如果此前应用了 7 月的CPU,则本次主要针对Windows 提出修订,还有主要是针对刚刚发布的 Oracle 18.3 版本的修正。

详细说明如下:

  1. 修正了Windows上版本11.2.0.4和12.2.0.1中的Oracle数据库漏洞。 CVE-2018-3110的CVSS v3基本分数为9.9,可能会导致Oracle数据库和对底层服务器的shell访问完全受损。
  2. CVE-2018-3110还影响Windows上的12.1.0.2以及Linux和Unix上的Oracle数据库,但是这些版本和平台的补丁包含在2018年7月的CPU中。

如果您在Windows上运行Oracle数据库版本11.2.0.4和12.2.0.1,请应用下面指出的修补程序。 如果您在Windows或Linux或Unix上的任何版本的数据库上运行版本12.1.0.2并且尚未应用2018年7月的CPU,请执行此操作。

由于此漏洞的性质,Oracle强烈建议客户立即采取措施。

除了以上声明的版本,其他过期版本同样会受到影响,只是 Oracle 不再单独列出和提供独立的补丁而已

严重程度

本次警告之所以独立发出,重点预警,是因为这个漏洞的危险性非常高,CVSS V3的评分高达 9.9 ,也就几乎是能够『完全控制系统』的安全威胁。

CVSS : Common Vulnerability Scoring System,即“通用漏洞评分系统”,是一个“行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度”。 CVSS的目标是为所有软件安全漏洞提供一个严重程度的评级,这个评分系统把能够完全攻破操作系统层的已知安全漏洞评为基准分数10.0分。换句话说,CVSS基准分数为10.0分的安全漏洞一般指能够完全攻破系统的安全漏洞,典型的结果是攻击者完全控制一个系统,包括操作系统层的管理或者“根”权限。

当然这个漏洞是需要前提条件的,CVE-2018-3110 需要一个数据库用户,具备最基本的CREATE SESSION,也就是说能够创建会话,连接到数据库。然后,基于对于公共 JAVA 对象的访问,获得权限提升,直至全部控制数据库

这个漏洞的组件是:Java VM。

在 2018年7月发布的CPU中,包含的 CVE-2018-3004 是和 3110 同源的漏洞,是在上一次实现攻击的基础上,有了进一步的简化攻击,从而其风险分值上升到 9.9 。

补丁列表

在 MOS 的以下文档,可以找到适用于各个版本的补丁:

Critical Patch Update (CPU) Program July 2018 Patch Availability Document (PAD) (文档 ID 2394520.1)。

针对 Oracle 18c ,也就是刚刚发布的 18.3 以及 12.2 的补丁列表如下,大家可以通过MOS找到适用于自己环境的补丁:

风险示例

很多客户可能会关心,如果不升级,到底会有多大的影响?

有些安全漏洞,需要特殊的权限,复杂的攻击注入方式,所以及时存在,重现不容易,威胁也就不大,例如2018年1月发布的安全补丁,其中一个漏洞已经存在了很久,以下连接中重现了 CVE-2017-10282 漏洞,其评分是 9.1 :

安全警报:Oracle 2018一月号安全补丁修复由来已久安全漏洞

而本次警示的 CVE-2018-3110 其评分是 9.9 ,需要的权限更少,更容易重现。

除非您能明确控制 Java VM 组件对象授权,并且能够确保每一个连接数据库的用户的身份和操作控制,否则强烈建议应用补丁,防范风险。

如果你不需要JAVA组件,建议在安装数据库时不要选择,否则就可能面临一系列的麻烦。在 Oracle 11.2.0.1 版本中,就曾经几度发生过注入漏洞。

这些麻烦多数是过度授权,将一些JAVA对象授权给 Public 执行权限,就导致了问题。例如 11.2.0.1 的 CPU 修正 9454036,其补丁脚本 jvm_exp.sql 的最后一段正是对于权限的回收,这个命令回收了 create session 用户也能执行 DBMS_JVM_EXP_PERMS 的问题:

begin initjvmaux.exec(‘revoke execute on sys.dbms_jvm_exp_perms from PUBLIC’); exception when others then if sqlcode not in (-01927, -06550, -06512) then raise; end if; end; /

关于 DBMS_JVM_EXP_PERMS 的执行权限的漏洞是,可以通过类似如下代码给自己授予JAVA的系统执行权限,就可以随时提权成为DBA了:

DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; CURSOR C1 IS SELECT ‘GRANT’,USER(), ‘SYS’,’java.io.FilePermission’,’<<ALL FILES>>‘,’execute’,’ENABLED’ from dual; BEGIN OPEN C1; FETCH C1 BULK COLLECT INTO POL; CLOSE C1; DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); END; /

此前 CPU 修订的另外一个漏洞则是和 DBMS_JAVA 的执行权限有关,通过这个Package的调用,可以随意执行系统命令,进一步提升权限:

SELECT DBMS_JAVA.RUNJAVA('oracle/aurora/util/Wrapper /bin/sh -c /usr/bin/id>/dev/shm/out') FROM DUAL;

这些方法都是在『DBA的暗世界』里广为流传的,如果您的数据库不能及时应用修正,又缺乏良好的权限控制,那么你的数据就早已经是明朗的天空了。

如果您还运行在低版本的数据库上,建议大家关注安全问题了。

参考文献:

http://www.oracle.com/technetwork/security-advisory/alert-cve-2018-3110-5032149.html

Critical Patch Update (CPU) Program July 2018 Patch Availability Document (PAD) (文档 ID 2394520.1)


原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2018-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

浅谈高性能数据库集群——读写分离

最近学习了阿里资深技术专家李运华的架构设计关于读写分离的教程,颇有收获,总结一下。

1271
来自专栏极客编程

用Node操作Firebird

  Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既能作...

752
来自专栏存储

Xen server虚拟化中虚拟机磁盘文件丢失的处理办法

因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失,通过电话联系北亚数据来进行恢复。硬件环...

2057
来自专栏雨过天晴

转 树莓派无显示器安装系统

1652
来自专栏喵了个咪的博客空间

phalapi-进阶篇5(数据库读写分离以及多库使用)

#phalapi-进阶篇5(数据库读写分离以及多库使用)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开...

3859
来自专栏Golang语言社区

Web 最常见安全知识总结

随着Web2.0、网络社交等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中,越来越多的应用都架设在Web平台上。Web业...

38412
来自专栏程序员的SOD蜜

LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结

近准备把PDF.NET框架的开源项目“超市管理系统”移植到Linux上跑(演示地址:http://221.123.142.196),使用Jexus服务器和MyS...

2369
来自专栏pangguoming

(十一) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图...

1662
来自专栏杨建荣的学习笔记

MySQL审计插件使用和对比

数据库审计是数据库安全中很重要的一个环节,说到审计,有些上市公司内部还会根据塞班斯法案,进行404审计等等。 而最基本的审计还是需要的,有些同学可能...

7109
来自专栏weixuqin 的专栏

基于 Django 的手机管理系统

1874

扫码关注云+社区

领取腾讯云代金券