梆梆资讯
安全漏洞 | 6月份月度安全漏洞报告
2022-07-11
近日,梆梆安全专家整理发布6月安全漏洞报告,主要涉及以下产品/组件:Atlassian Confluence、Drupal Guzzle、Linux Kernel eBPF 、PHP及微软多产品 ,建议相关用户做好资产自查与预防工作。
01 Atlassian Confluence存在远程代码漏洞
01漏洞描述
VM Atlassian Confluence Server是澳大利亚Atlassian公司的一套具有企业知识管理功能,并支持用于构建企业WiKi的协同软件的服务器版本。
2022年6月2日,Atlassian发布安全公告,公布了一个Confluence Server和Data Center中的远程代码执行漏洞。漏洞编号:CVE-2022-26134,漏洞威胁等级:严重。
02 影响范围
Atlassian Confluence Server and Data Center >= 1.3.0
Atlassian Confluence Server and Data Center < 7.4.17
Atlassian Confluence Server and Data Center < 7.13.7
Atlassian Confluence Server and Data Center < 7.14.3
Atlassian Confluence Server and Data Center < 7.15.2
Atlassian Confluence Server and Data Center < 7.16.4
Atlassian Confluence Server and Data Center < 7.17.4
Atlassian Confluence Server and Data Center < 7.18.1
Atlassian Confluence Server and Data Center 7.4.17
Atlassian Confluence Server and Data Center 7.13.7
Atlassian Confluence Server and Data Center 7.14.3
Atlassian Confluence Server and Data Center 7.15.2
Atlassian Confluence Server and Data Center 7.16.4
Atlassian Confluence Server and Data Center 7.17.4
Atlassian Confluence Server and Data Center 7.18.1
03 漏洞分析
Confluence 基于 Struts 架构进行开发。我们首先以登录请求为例,对 Confluence 请求处理的流程进行动态调试:
首先访问/login.action,经过一系列Filter处理后,将进入Servlet 的分发器 ServletDispatcher。
com.opensymphony.webwork.dispatcher.ServletDispatcher:
在ServletDispatcher中,通过getNameSpace 、getActionName 、 getRequestMap 、 getSessionMap 、 getApplicationMap函数 ,分别去获取对应的值。(使用payload=/${4*4}/)。
重点分析getNamespace函数,其对应的值为namespace。
在com.opensymphony.webwork.dispatcher.ServletDispatcher#getNamespace中。
通过调用com.atlassian.plugin.servlet.PluginHttpRequertWrapper#getServletPath函数,获取了请求servletPath的值。
随后进入回到com.opensymphony.webwork.dispatcher.ServletDispatcher中进入getNamespaceFromServletPath函数。
通过对字符串的截取 ,使得namespace 的取值为请求 servletPath 最后一个 / 之前的部分。
根据com.opensymphony.webwork.dispatcher.ServletDispatcher#serviceAction函数。
到com.opensymphony.xwork.DefaultActionProxy#execute,实例化 DefaultActionProxy 对象,调用其execute函数。
随后进入com.opensymphony.xwork.DefaultActionlnvocation#invoke函数,通过Next获取拦截器对象。
继续跟进来到com.opensymphony.xwork.interceptor.Aroundlnterceptor#intercept,发现invoke函数通过调用intercept方法,形成迭代循环。
通过不断调试,发现在满足一定条件之后,将不会继续调用invoke函数,而是将返回 notpermitted 并赋值给 resultCode,跳出循环。
随后进入com.opensymphony.xwork.ActionChainResult#execute函数。
这里通过getNamespace获取namespace的值,前面我们已经分析出来:namespace的取值为请求servletPath最后一个/之前的部分。
继续跟进,在com.opensymphony.xwork.ActionChainResult中,会调用translateVariables函数对OGNL表达式进行解析,表达式的值为namespace的取值。
在com.opensymphony.xwork.util.TextParseUtil#translateVariables中。
调用了com.opensymphony.xwork.util.OgnlValueStack#findValue函数对表达式进行解析。
一系列操作之后,findValue返回的字符串为16,成功触发 OGNL 表达式注入。
04 修复建议
1、安装补丁
目前厂商已发布修复版本,请升级到以下版本:
Atlassian Confluence Server and Data Center 7.4.17
Atlassian Confluence Server and Data Center 7.13.7
Atlassian Confluence Server and Data Center 7.14.3
Atlassian Confluence Server and Data Center 7.15.2
Atlassian Confluence Server and Data Center 7.16.4
Atlassian Confluence Server and Data Center 7.17.4
Atlassian Confluence Server and Data Center 7.18.1
2、缓解措施
对下载官方发布的xwork-1.0.3-atlassian-10.jar替换confluence/WEB-INF/lib/目录下原来的xwork jar文件,并重启Confluence
下载地址:
https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jar
02 Drupal Guzzle 存在多个信息泄露漏洞
01 漏洞描述
Drupal官方发布通告,由于Drupal使用Guzzle库来处理对外部服务的 HTTP 请求和响应,因而会受到Guzzle信息泄露漏洞(包括CVE-2022-31042和CVE-2022-31043)的影响,攻击者可利用这些漏洞泄露cookie 或Authorization标头。
02 影响范围
CVE-2022-31042:
Guzzle ≤ 6.5.6
7.0.0 ≤ Guzzle ≤7.4.3
CVE-2022-31043
Guzzle ≤ 6.5.6
7.0.0 ≤ Guzzle ≤7.4.3
03 漏洞分析
CVE-2022-31042:Guzzle中存在信息泄露漏洞,当使用 https 协议向服务器发起请求,服务器使用 http协议重定向到某个URI进行响应,或重定向到另一个主机的URI进行响应时,在这个过程中任何手动添加到初始请求的“cookie”头不会被删除,会进行转发。
CVE-2022-31043:Guzzle 6.5.6及之前版本、7.0.0到7.4.3版本中存在信息泄露漏洞,当使用 https协议向服务器发出请求,服务器重定向到http协议的 URI 进行响应时,从https到http的降级过程中不会删除Authorization标头,Authorization标头也会被转发。
04 修复建议
请尽快升级至安全版本:
1.如果您使用的是 Drupal 9.4,请更新到Drupal 9.4.0-rc22;
2.如果您使用的是 Drupal 9.3,请更新到Drupal 9.3.163;
3.如果您使用的是 Drupal 9.2,请更新到Drupal 9.2.21。
请注意,9.2.x 之前的所有 Drupal 9 版本都已结束生命周期,Drupal 8 已经停止维护。Drupal 7 不受漏洞影响。
高级用户也可以通过暂时使用drupal/core而不是drupal/core-recommended 然后将 Guzzle 更新到所需版本来解决此问题(Guzzle 用户可升级至Guzzle 6.5.7 或 7.4.4安全版本)。
用户可参考以下链接获取更多信息:
https://www.drupal.org/sa-core-2022-011
03 Linux Kernel eBPF 存在权限提升漏洞
01 漏洞描述
2022年1月14日,RedHat发布安全公告,公开了Linux 内核中的一个本地权限提升漏洞(CVE-2022-23222),该漏洞的CVSSv3评分最高为7.8。
Linux内核的BPF验证器(kernel/bpf/verifier.c)的adjust_ptr_min_max_vals()中存在安全问题,对执行指针运算的*_OR_NULL指针类型缺少检查,这可以用来绕过验证器的检查并提升权限。
6月7日,该漏洞的技术细节和PoC/EXP在互联网上公开,可在获得目标系统上低权限代码执行能力的情况下利用此漏洞将权限提升为root。
02 影响范围
5.8.0 <= Linux kernel <= 5.16
03 漏洞分析
该漏洞的存在是由于Linux 内核的BPF 验证器没有对*_OR_NULL指针类型进行限制,允许这些类型进行指针运算。将一个*_OR_NULL类型的NULL指针r0传递给r1,再将r1加1,然后对r0进行NULL检查,此时eBPF会认为r0和r1都为0,但实际上r0为0,r1为1,攻击者可以利用这个漏洞提升本地权限至ROOT。
04 修复建议
目前此漏洞已经修复,受影响用户可以升级更新到以下版本:
Linux kernel >= 5.10.92
Linux kernel >= 5.15.15
Linux kernel >= 5.16.1
Linux kernel < 5.8.0
注:在某些Linux发行版本中默认禁止非特权用户使用 eBPF。Red Hat Enterprise Linux用户可参考Red Hat官方公告:
https://access.redhat.com/security/cve/cve-2022-23222
04 PHP 存在远程代码执行漏洞
01 漏洞描述
PHP 官方发布了关于PHP存在远程代码执行漏洞的漏洞通告,漏洞编号分别为:CVE-2022-31625、CVE-2022-31626。其中CVE-2022-31625是由于PHP_FUNCTION中分配在堆上的数组清除不及时,导致错误的再次调用php_pgsql_free_params()函数时,可能会使用之前未及时清除的数组值,从而造成远程代码执行;CVE-2022-31626则是由于PHP的mysqlnd拓展中存在堆缓冲区溢出漏洞,拥有php数据库的连接权限并建立恶意MySQL服务器的攻击者,通过诱导主机以mysqlnd主动连接该服务器从而触发缓冲区溢出漏洞,最终实现远程代码执行,像是Adminer、 PHPmyAdmin这类基于php的数据库管理软件均可能受该漏洞影响。
02 影响范围
CVE-2022-31625
5.3.0<= PHP 5.x < 5.6.40
7.0.1<= PHP 7.x < 7.4.30
8.0.0<= PHP 8.0.x < 8.0.20
8.1.0<= PHP 8.1.x < 8.1.7
CVE-2022-31626
PHP 8.1.x < 8.1.7
PHP 8.0.x < 8.0.20
PHP 7.x < 7.4.30
03 漏洞分析
CVE-2022-31626
该漏在pg_query_params()中,由于数组没有被初始化,因此可以释放以前请求中的延迟值,最终可导致远程代码执行。
PHP_FUNCTION(pg_query_params)函数中,使用zval_try_get_string进行数据类型转换,如果数据类型转换错误就会调用_php_pgsql_free_params释放掉的数组前部分值i,但由于错误传递参数,传递了整个数组的大小值num_params,导致释放了整个数组,进而导致释放了之前请求的值
CVE-2022-31626
该漏洞在验证时会将mysql查询到的auth_data数据复制到内存数组p,申请p内存时,只申请了验证数据的buffer部分(长度为packet->auth_data_len)。而实际的auth_data是packet->auth_data_len+MYSQLND_HEADER_SIZE,所以导致复制时将大的数据复制到的小的空间发生了溢出。
04 修复建议
下面目前官方已发布修复版本,用户可升级至以下安全版本:
PHP 8.1.7
PHP 8.0.20
PHP 7.4.30
05 微软多产品 存在高危漏洞
01 漏洞描述
本月,微软共发布了56个漏洞的补丁程序,修复了HEVC Video Extensions、Microsoft SharePoint Server Subscription Edition、System Center Operations Manager 等产品中的漏洞。经研判,以下6个重要漏洞值得关注:
CVE编号 |
风险等级 |
漏洞名称 |
CVE-2022-30190 |
重要 |
Microsoft Windows 支持诊断工具 (MSDT) 远程代码执行漏洞 |
CVE-2022-30139 |
紧急 |
Windows 轻量级目录访问协议 (LDAP) 远程代码执行漏洞 |
CVE-2022-30163 |
紧急 |
Windows Hyper-V 远程代码执行漏洞 |
CVE-2022-30136 |
紧急 |
Windows 网络文件系统远程代码执行漏洞 |
CVE-2022-30147 |
重要 |
Windows Installer 权限提升漏洞 |
CVE-2022-30160 |
重要 |
Windows Advanced Local Procedure Call权限提升漏洞 |
02 影响范围
涉及组件:
.NET and Visual Studio
Azure OMI
Azure Real Time Operating System
Azure Service Fabric Container
Intel
Microsoft Edge (Chromium-based)
Microsoft Office
Microsoft Office Excel
Microsoft Office SharePoint
Microsoft Windows ALPC
Microsoft Windows Codecs Library
Remote Volume Shadow Copy Service (RVSS)
Role: Windows Hyper-V
SQL Server
Windows Ancillary Function Driver for WinSock
Windows App Store
Windows Autopilot
Windows Container Isolation FS Filter Driver
Windows Container Manager Service
Windows Defender
Windows Encrypting File System (EFS)
Windows File History Service
Windows Installer
Windows iSCSI
Windows Kerberos
Windows Kernel
Windows LDAP - Lightweight Directory Access Protocol
Windows Local Security Authority Subsystem Service
Windows Media
Windows Network Address Translation (NAT)
Windows Network File System
Windows PowerShell
Windows SMB
03 漏洞分析
1. Microsoft Windows 支持诊断工具 (MSDT) 远程代码执行漏洞:CVE-2022-30190
攻击者可以通过构造带有恶意链接的Office文档发送给用户,诱导用户打开该文档时,则会触发该漏洞,需要注意的是,如果在资源管理器中开启了预览选项,无需用户打开恶意文档,仅预览RTF格式的恶意文档就会触发该漏洞。
2. Windows 轻型目录访问协议 (LDAP)远程执行代码漏洞:CVE-2022-30139
该漏洞需要满足特殊条件才能被利用:仅将MaxReceiveBuffer LDAP 策略设置为高于默认值的值时,此漏洞才可被利用。具有此策略默认值的系统不会受到攻击。
3. Windows Hyper-V 远程执行代码漏洞:CVE-2022-30163
攻击者可以利用此漏洞在 Hyper-V guest虚拟机上运行特殊设计的应用程序,这可能允许其在 Hyper-V 主机操作系统执行任意恶意代码。
4. Windows 网络文件系统远程执行代码漏洞:CVE-2022-30136
攻击者可以通过网络利用此漏洞,其通过对网络文件系统 (NFS) 服务进行未经身份验证的特制调用以触发远程代码执行 (RCE)。
5. Windows Installer 特权提升漏洞:CVE-2022-30147
这是一个影响 Windows Installer 的 EoP 漏洞,该漏洞无需用户交互,攻击者利用该漏洞绕过安全限制进行权限提升。
6. Windows Advanced Local Procedure Call权限提升漏洞:CVE-2022-30160
该漏洞允许本地用户提升系统的权限。该漏洞的存在是由于应用程序没有在WindowsAdvanced Local Procedure Call中正确施加安全限制,从而导致绕过安全限制和提权。
04 修复建议
当Windows自动更新
Windows系统默认启用 Microsoft Update,当检测到可用更新时,将会自动下载更新并在下一次启动时安装。还可通过以下步骤快速安装更新:
1、点击“开始菜单”或按Windows快捷键,点击进入“设置”;
2、选择“更新和安全”,进入“Windows更新”(Windows 8、Windows 8.1、Windows Server 2012以及Windows Server 2012 R2可通过控制面板进入“Windows更新”,步骤为“控制面板”-> “系统和安全”->“Windows更新”);
3、选择“检查更新”,等待系统将自动检查并下载可用更新;
4、重启计算机,安装更新。
系统重新启动后,可通过进入“Windows更新”->“查看更新历史记录”查看是否成功安装了更新。对于没有成功安装的更新,可以点击该更新名称进入微软官方更新描述链接,点击最新的SSU名称并在新链接中点击“Microsoft 更新目录”,然后在新链接中选择适用于目标系统的补丁进行下载并安装。
手动安装补丁
另外,对于不能自动更新的系统版本(如Windows 7、Windows Server 2008、Windows Server 2008 R2),可参考以下链接下载适用于该系统的6月补丁并安装:
https://msrc.microsoft.com/update-guide/releaseNote/2022-Jun
Copyright ©2022. All Rights Reserved 京ICP证160618号 京ICP备11006574号-1