高风险组件漏洞及修复办法「持续补充更新」

高风险组件漏洞及修复办法

  • kubernetes kube-apiserver 存在SSRF漏洞( CVE-2022-3172)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Apache Spark命令注入漏洞(CVE-2022-33891)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Apache Shiro 身份认证绕过漏洞 (CVE 2022 40664)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Apache Shiro 身份认证绕过漏洞 (CVE 2022 32532)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Spring Framework远程命令执行漏洞(CVE-2022-22965)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Linux kernel eBPF权限提升漏洞(CVE-2022-23222)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Linux DirtyPipe权限提升漏洞(CVE-2022-0847)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Spring Cloud Function SpEL表达式注入漏洞( CVE-2022-22963)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • fastjson ≤ 1.2.80反序列化漏洞( CVE-2022-25845)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Apache Log4j2 系列漏洞(CVE-2021-45105)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Apache Struts2 远程代码执行漏洞S2-062 (CVE-2021 31805)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • NGINX DNS解析程序漏洞(CVE-2021-23017)
    • 漏洞描述
    • 影响范围
    • 修复方案
  • Linux Polkit权限提升漏洞(CVE-2021-4034)
    • 漏洞描述
    • 影响范围
    • 修复方案

Linux CVE漏洞公布网站

kubernetes kube-apiserver 存在SSRF漏洞( CVE-2022-3172)

漏洞描述

  kube-apiserver 是Kubernetes 的核心组件之一,kube-apiserver 主要提供集群管理的 REST API 接口和其他模块之间的数据交互和通信的枢纽。

  kube-apiserver 的受影响版本中存在SSRF漏洞,漏洞源于其允许聚合API 服务器将客户端流量重定向到任何 URL,进而将客户端的 API服务器凭据转发给第三方。

  攻击者可利用该漏洞进行内网扫描甚至访问内部系统数据。

影响范围

kube-apiserver@[1.25.0, 1.25.1)
kube-apiserver@[1.23.0, 1.23.11)
kube-apiserver@(-∞, 1.21.15)
kube-apiserver@[1.22.0, 1.22.14)
kube-apiserver@[1.24.0, 1.24.5)

修复方案

  升级kube-apiserver到 1.21.15 或 1.22.14 或 1.23.11 或 1.24.5 或 1.25.1 或更高版本

Apache Spark命令注入漏洞(CVE-2022-33891)

漏洞描述

  Apache Spark 是用于大规模数据处理的统一分析引擎。在Apache Spark中,可以通过Apache Spark用户界面提供的配置选项spark.acls.enable来启用ACL,可以通过认证过滤器检查用户是否有查看或修改应用程序的权限。如果ACL被启用,则可以通过提供任意用户名来模拟HttpSecurityFilter中的代码路径,并导致以Spark当前运行的用户身份执行任意shell命令。

影响范围

  Apache Spark <= 3.0.3
  3.1.1 <= Apache Spark <=3.1.2
  3.2.0 <= Apache Spark <=3.2.1

修复方案

  目前此漏洞已经修复,受影响用户可以升级到Apache Spark 3.1.3、3.2.2 、3.3.0 或更高版本。
下载链接

Apache Shiro 身份认证绕过漏洞 (CVE 2022 40664)

漏洞描述

  当通过 RequestDispatcher 进行转发或包含时,攻击者可以绕过身份认证机制进入登录后的页面

影响范围

  目前受影响的 Apache Shiro 版本:Apache Shiro < 1.10.0

修复方案

  当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:
https://shiro.apache.org/download.html

Apache Shiro 身份认证绕过漏洞 (CVE 2022 32532)

漏洞描述

  Apache Shiro 是一个可以提供身份验证、授权、密码学和会话管理等功能的开源安全框架。Shiro 框架不仅直观、易用,同时也能提供强大的安全性。
使用 Shiro 可以轻松地、快速地保护任何应用程序,从小型的移动应用程序到大型的 Web 和企业应用程序。其内置了可以连接大量安全数据源(又名目录)的 Realm,如 LDAP、关系数据库( JDBC )、类似INI 的文本配置资源以及属性文件等。
当Apache Shiro 中使用 RegExPatternMatcher 进行权限配置,且正则表达式中携带“.”时,未经授权的远程攻击者可通过构造恶意数据包绕过身份认证,利用该漏洞在未授权的情况下,构造恶意数据绕过 Shiro 的权限配置机制,最终可绕过用户身份认证,导致配置的权限验证失效。

  利用条件:使用RegExPatternMatcher 的应用程序在正则表达式中携带“.”

影响范围

  目前受影响的 Apache Shiro 版本:Apache Shiro < 1.9.1

修复方案

  当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:https://shiro.apache.org/download.html

Spring Framework远程命令执行漏洞(CVE-2022-22965)

漏洞描述

  springframework 是spring 里面的一个基础开源框架,主要用于javaee的企业开发。

  攻击者通过该漏洞可远程实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。

  该漏洞是由于 Spring Core 未对传输的数据进行有效的验证。Spring MVC 框架提供参数绑定功能,允许用请求中的参数绑定控制器方法中参数对象的成员变量。这一机制使得攻击者能够通过构造恶意请求获取 AccessLogValve 对象,继而注入恶意字段值触发 pipeline 机制,从而能够在未授权的情况下远程构造恶意数据,写入任意路径下的文件,从而导致远程代码执行。

影响范围

  Spring Framework 5.3.X < 5.3.18
  Spring Framework 5.2.X < 5.2.20
  JDK版本 >=9 (1.9才会存在)
  使用Spring 框架以及衍生的框架(存在spring-beans-*.jar或CachedIntrospectionResults.class文件)

修复方案

一. 官方升级:
  当前 Spring Framework 官方已发布最新版本,建议受影响的用户及时更新升级到最新版本

Spring Framework 官方发布的最新版本

二. 临时防护措施:
  临时修复建议存在一定风险,建议可根据业务系统特性审慎选择采用临时修复方案:
需同时按以下两个步骤进行漏洞的临时修复:

  1. 在应用中全局搜索 @InitBinder 注解,看看方法体内是否调用 dataBinder.setDisallowedFields 方法,如果发现此代码片段的引入,则在原来的黑名单中,添加 {“class.","Class. “,”. class.”, “.Class.”}
    注:如果此代码片段使用较多,需要每个地方都追加

  2. 在应用系统的项目包下新建以下全局类,并保证这个类被 Spring 加载到 (推荐在 Controller 所在的包中添加)完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目

Linux kernel eBPF权限提升漏洞(CVE-2022-23222)

漏洞描述

  该漏洞是由于 Linux 内核的 BPF 验证器存在一个空指针漏洞,没有对*_OR_NULL 指针类型进行限制,允许这些类型进行指针运算。攻击者可利用该漏洞在获得低权限的情况下,构造恶意数据执行空指针引用攻击,最终获取服务器 root 权限。

影响范围

  目前受影响的 Linux Kernel 版本:
  5.8 ≤ Linux Kernel ≤ 5.16
  注意:Linux Kernel 5.10.92、 5.15.15、 5.16.1 版本不受影响。而且在某些Linux发行版本中默认禁止非特权用户使用 eBPF

修复方案

  当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:https://www.kernel.org/

  默认的 Red Hat Enterprise Linux 内核通过 kernel.unprivileged_bpf_disabled 阻止非特权用户使用 eBPF。对于Red Hat Enterprise Linux 7,非特权用户的eBPF总是被禁用。 Red Hat Enterprise Linux 8 确认当前状态,请使用以下命令检查:

cat /proc/sys/kernel/unprivileged_bpf_disabled

设置为 1 意味着非特权用户无法使用 eBPF,从而减轻了漏洞

Linux DirtyPipe权限提升漏洞(CVE-2022-0847)

漏洞描述

  攻击者通过利用DirtyPipe漏洞,可覆盖重写任意可读文件中的数据,从而可将普通权限的用户提升到root权限。

影响范围

  5.8 <= Linux kernel < 5.16.11 / 5.15.25 / 5.10.102

不受影响版本:
  该漏洞已在Linux 5.16.11、5.15.25 和 5.10.102 中修复

漏洞复现:
  https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit
  https://www.exploit-db.com/exploits/50808

修复方案

  升级内核到安全版本:
  Linux 内核 >= 5.16.11
  Linux 内核 >= 5.15.25
  Linux 内核 >= 5.10.102

Spring Cloud Function SpEL表达式注入漏洞( CVE-2022-22963)

漏洞描述

  由于SpringCloudFunction中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,未经授权的远程攻击者可利用该漏洞执行任意代码。

影响范围

  3.0.0.RELEASE <= SpringCloudFunction <= 3.2.2

修复方案

  1. 若程序使用Maven打包,根据项目pom.xml文件中是否引用了spring-cloud-function-context组件
  2. 对使用了org.springframework.cloud:spring-cloud-function-context组件的项目代码,可使用以下命令查看版本:Grep -A 2 ‘spring-cloud-function-context’ pom.xml
  3. 目前Spring官方已发布新版本完成漏洞修复:漏洞官网GitHub上给出了修复commit

fastjson ≤ 1.2.80反序列化漏洞( CVE-2022-25845)

漏洞描述

  fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean,由于具有执行效率高的特点,应用范围广泛。

  近日,监测到Fastjson官方发布,Fastjson≤1.2.80版本中存在反序列化漏洞。攻击者可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大。

影响范围

  fastjson≤1.2.80
   相关用户可使用以下命令检测当前使用的Fastjson版本:

lsof |grep fastjson

修复方案

一. 升级到最新版本1.2.83
  https://github.com/alibaba/fastjson/releases/tag/1.2.83
  该版本涉及autotype行为变更,在某些场景会出现不兼容的情况,如遇遇到问题可以到
https://github.com/alibaba/fastjson/issues寻求帮助。

二. 关闭autoType功能
  fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)。
1.2.83修复了此次发现的漏洞,开启safeMode是完全关闭autoType功能,避免类似问题再次发生,这可能会有兼容问题,请充分评估对业务影响后开启。
开启方法可参考

三. 可升级到fastjson v2
  Fastjson已经开源2.0版本,在2.0版本中,不再为了兼容提供白名单,提升了安全性。fastjson v2代码已经重写,性能有了很大提升,不完全兼容1.x,升级需要做认真的兼容测试。
升级到 fastjson v2版本参考

Apache Log4j2 系列漏洞(CVE-2021-45105)

漏洞描述

  log4j2是apache实现的一个开源日志组件。Apache Log4j 2被披露出存在严重的远程代码执行漏洞。该日志框架被大量用于业务系统开发,用来记录日志信息。此次漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行。log4j2属于第三方组件库,被大量Java框架应用使用,即Apache Struts2、Apache Solr、Apache Druid、Apache Flink、Apache Dubbo、Apache Kafka、Spring-boot-starter-log4j2等应用均受影响。

影响范围

  Apache Log4j 2.x <= 2.14.1

不受影响版本:
  log4j-2.15.0-rc2

修复方案

一. 升级最新版本
  排查Java应用是否引入 log4j-api , log4j-core 两个jar,及Apache Solr
、Apache Flink、Apache Druid、Apache Dubbo、srping-boot-strater-log4j2等应用和组件,请及时检查所有相关应用升级到最新版本。
官方升级版本

二. 紧急缓解措施
(1)修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
(2)修改配置log4j2.formatMsgNoLookups=True
(3)将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true

Apache Struts2 远程代码执行漏洞S2-062 (CVE-2021 31805)

漏洞描述

  远程代码执行S2-062(CVE-2021-31805)由于Apache Struts2对S2-061(CVE-2020-17530)的修复不够完整,导致一些标签属性仍然可以执行 OGNL 表达式,攻击者利用该漏洞可以构造恶意数据远程执行任意代码。

  Apache Struts2中存在远程代码执行漏洞,在某些标签中若后端通过%{…} 形式对其属性进行赋值,则将对OGNL表达式进行二次解析,从而执行恶意代码。

影响范围

  2.0.0 <= Apache Struts2 <= 2.5.29

修复方案

  升级至版本 Apache Struts2 > 2.5.29
升级方式

NGINX DNS解析程序漏洞(CVE-2021-23017)

漏洞描述

  Nginx解析器中的一个DNS解析程序漏洞(CVE-2021-23017),由于ngx_resolver_copy()处理DNS响应时存在错误 ,当nginx配置文件中使用了“ resolver”指令时,未经身份验证的攻击者能够伪造来自DNS服务器的UDP数据包,构造特制的DNS响应导致1字节内存覆盖,从而造成拒绝服务或任意代码执行。

影响范围

受影响的版本:
  NGINX 0.6.18 – 1.20.0

不受影响版本:
  NGINX Open Source 1.20.1 (stable)
  NGINX Open Source 1.21.0 (mainline)
  NGINX Plus R23 P1
  NGINX Plus R24 P1

修复方案

  目前厂商已发布升级补丁以修复漏洞 。补丁获取链接
  根据补丁链接的提示可将Nginx升级为1.20.1或者1.21版本

  开始修复:前往官网http://nginx.org/en/download.html查看对应的版本
  查看目前nginx版本:

cd /usr/local/nginx/sbin/
./nginx -V
nginx version: nginx/1.8.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx --without-http_rewrite_module --without-http_gzip_module

  备份原nginx二进制文件,切换到nginx所在目录进行备份,备份的过程系统不受影响

 cp  -pdr /usr/local/nginx  /usr/local/nginx.bak

  将新版本的nginx压缩包上传到服务器进行解压:

 tar xvf nginx-1.20.2.tar.gz

  切换到解压后的nginx文件夹内执行,只需要make,千万不要make install ,如果执行make install会将原来的配置文件覆盖

./configure --prefix=/usr/local/nginx --without-http_rewrite_module --without-http_gzip_module
make 

  复制nginx-1.20.2下的nginx到原来的nginx目录下,注意nginx-1.20.2中nginx在objs目录下而不是在sbin下面

cp /root/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/
cp: overwrite ‘/usr/local/nginx/sbin/nginx’? y

  测试是否替换成功:

/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.20.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx --without-http_rewrite_module --without-http_gzip_module

Linux Polkit权限提升漏洞(CVE-2021-4034)

漏洞描述

  pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。攻击者获得一个普通用户权限后,可利用该漏洞提权至特权用户获得管理员权限。

影响范围

  Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上。

  Linux系统用户可以通过查看Polkit版本来判断当前系统是否在受影响范围内,主流Linux发行版命令如下:

CentOS:rpm -qa polkit
Ubuntu:dpkg -l policykit-1

不受影响版本:
CentOS:
CentOS 6:polkit-0.96-11.el6_10.2
CentOS 7:polkit-0.112-26.el7_9.1
CentOS 8.0:polkit-0.115-13.el8_5.1
CentOS 8.2:polkit-0.115-11.el8_2.2
CentOS 8.4:polkit-0.115-11.el8_4.2

Ubuntu:
Ubuntu 14.04 ESM:policykit-1-0.105-4ubuntu3.14.04.6+esm1
Ubuntu 16.04 ESM:policykit-1-0.105-14.1ubuntu0.5+esm1
Ubuntu 18.04 LTS:policykit-1-0.105-20ubuntu0.18.04.6
Ubuntu 20.04 LTS:policykit-1-0.105-26ubuntu1.2
Ubuntu 21.10:policykit-1-0.105-31ubuntu0.1

Debain:
Debain stretch:policykit-1 0.105-18+deb9u2
Debain buster:policykit-1 0.105-25+deb10u1
Debain bullseye:policykit-1 0.105-31+deb11u1
Debain bookworm,bullseye:policykit-1 0.105-31.1

验证漏洞:

修复方案

一. 官方升级:

  1. 目前官方已发布补丁修复此漏洞,根据影响版本中的信息,排查并升级到安全版本
  2. 目前主流Linux发行版均已发布安全补丁或更新版本修复此漏洞,建议尽快安装补丁或参照官方措施进行防护:
Linux发行版 官方通告
Ubuntu https://ubuntu.com/security/CVE-2021-4034
Debain https://security-tracker.debian.org/tracker/CVE-2021-4034
Redhat https://access.redhat.com/security/cve/CVE-2021-4034
Gentoo https://bugs.gentoo.org/show_bug.cgi?id=CVE-2021-4034
Mageia https://advisories.mageia.org/CVE-2021-4034.html

CentOS 7:

升级到 polkit-0.112-26.el7_9.1:

# yum update -y polkit.x86_64
# rpm -qa polkit     结果中必须要有 _9.1 的标识

二. 临时防护措施:

  若受影响用户使用的操作系统还未发布修复程序,或暂时无法安装补丁更新,在不影响业务的情况下可使用以下措施进行临时防护。
执行下列系统命令移除 pkexec 的 suid位:
CentOS 6:

执行 chmod 0755 /usr/bin/pkexec

你可能感兴趣的:(系统安全,安全,linux)