Kylin 与 Tomcat 近期安全漏洞,建议 Kylin 用户处理

2020年 3月 06日
近期新披露两个安全漏洞,一个是 Kylin 的 SQL 注入漏洞,一个是 Tomcat 的安全漏洞,因为 Kylin 使用 Tomcat 因此也受到影响。请大家参考下面的方法来尽快修复安全漏洞。

 

Apache Kylin

• CVE(Common Vulnerabilities and Exposures 通用漏洞披露)ID:CVE-2020-1937(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1937)
• 漏洞类型:SQL 注入
• 重要程度:重要
• 影响 Kylin 版本:Kylin 2.3.0 至 2.3.2,Kylin 2.4.0 至 2.4.1,Kylin 2.5.0 至 2.5.2,Kylin 2.6.0 至 2.6.4, Kylin 3.0.0-alpha,Kylin 3.0.0-alpha2,Kylin 3.0.0-beta,Kylin 3.0.0
问题描述:
上述 Kylin 版本中存在若干 Restful API 会通过输入参数拼接成 SQL 语句进行查询,这可能使得攻击者可以通过在这些 API 的参数拼接上额外的 SQL 元素,进行未经授权的查询等操作。
处理方法(建议采取其中一种):
方法一:
升级到 2.6.5 或者 3.0.1 版本
方法二:
修改 Restful API 权限配置,禁用部分 API,步骤为:
a) 停止 Kylin 服务
b) 修改 $KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml 文件,在配置 API 权限配置部分的
[scr:intercept-url pattern="/api/cubes/src/tables" access="hasAnyRole('ROLE_ANALYST')"/]

这一行下面,插入如下两行:

[scr:intercept-url pattern="/api/cubes/**/cuboids/**" access="denyAll"/]
[scr:intercept-url pattern="/api/dashboard/metric/**" access="denyAll"/]
后果是会导致 Dashboard 和 Cube Planner 功能不可用
C) 重启 Kylin 服务
特此感谢 Jonathan Leitschuh 发现并协助修复了该漏洞。

 

Apache Tomcat

• CVE(Common Vulnerabilities and Exposures 通用漏洞披露)ID:CVE-2020-1938(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1938)
• 漏洞类型:信息泄露
• 重要程度:重要
• 影响 Kylin 版本:所有 Kylin 版本
问题描述:
该漏洞是由于 Tomcat AJP 协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器 webapp 下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。由于 Kylin 打包了 Tomcat 作为 web 容器,因而也存在此问题。
处理方法:
a) 停止 Kylin 服务
b) 打开配置文件 $KYLIN_HOME/tomcat/conf/server.xml
c)  找到如下配置(具体端口根据初始配置可能有差异,协议确认为 protocol=”AJP/1.3″)
[Connector port="9009" protocol="AJP/1.3" redirectPort="8443" /]

d) 注释如下代码:

[Connector port="9009" protocol="AJP/1.3" redirectPort="8443" /]

e) 启动 Kylin 服务