Apache Guacamole 清静误差通告
宣布时间 2020-07-030x00 误差概述
|
产品 |
CVE ID |
类 型 |
误差品级 |
远程使用 |
影响规模 |
|
Apache Guacamole |
CVE-2020-9497 |
II |
严重 |
是 |
Apache Guacamole < 1.2.0 |
|
CVE-2020-9498 |
MC |
严重 |
是 |
0x01 误差详情
Check Point的清静专家在Apache Guacamole中发明了多个严重的反向RDP误差。Apache Guacamole是系统管理员用于远程会见和管理Windows和Linux盘算机的盛行远程桌面应用程序。攻击者可以使用这些误差实现对Guacamole服务器的完全控制,并阻挡和控制Guacamole上的所有会话。
信息泄露误差(CVE-2020-9497):
为了在RDP毗连和客户端之间传输新闻,开发职员为默认RDP通道实现了扩展,用于处置惩罚来自服务器的音频数据包(“rdpsnd”),传入的新闻由FreeRDP的wStream工具封装,并且使用该工具的API来剖析数据。可是由于缺少输入过滤导致越界读取。如图所示:
攻击者通过发送一条恶意rdpsnd新闻获取到RDP客户端的内存信息。
在统一RDP通道中,差别的新闻具有类似的误差。这次将越界数据发送到毗连的客户端,而不是发送回RDP服务器。
读取的界线类似,这次将数据泄露到客户端。
内存损坏误差(CVE-2020-9498)
RDP协议将差别的“devices”分成单独的“channels”,包括rdpsnd声音的通道,cliprdr剪贴板的通道等等。作为笼统层,通道新闻支持分段,从而允许其新闻最长为4GB。为了准确地支持rdpsnd和rdpdr(装备重定向)通道,guacamole-server的开发职员添加了一个附加的笼统层,该笼统层在文件中实现:guac_common_svc.c。下图显示了在此文件中实现的传入通道的片断处置惩罚:
我们可以看到第一个片断必需包括该CHANNEL_FLAG_FIRST片断,并且在处置惩罚该片断时,将凭证total_length分派流。可是,若是攻击者发送不带该标记的片断会怎样?似乎只是将其附加到先前的剩余流中�?杉馐怯赡诖媲寰渤逋灰鸬男罩刚胛蟛�。现在,我们只需要检查开发职员是否记得上一条新闻处置惩罚完成时是否将悬空指针设置为NULL。
图中可以看出,新闻处置惩罚完成后,释放使用的流而没有扫除悬空指针。
通过使用误差CVE-2020-9497和CVE-2020-9498,当远程用户请求毗连到受害者的盘算机时,受熏染的盘算机(RDP服务器)可以控制guacd历程,从而实现远程代码执行。
值得注重的是,到现在为止,Apache Guacamole远程桌面应用程序在Docker Hub上的下载量已凌驾1000万,该误差影响规模较大,请相关用户升级到Apache Guacamole 1.2.0版本。
0x02 处置惩罚建议
现在厂商已宣布补丁,下载链接:
https://guacamole.apache.org/releases/1.2.0/
0x03 相关新闻
https://thehackernews.com/2020/07/apache-guacamole-hacking.html
0x04 参考链接
https://research.checkpoint.com/2020/apache-guacamole-rce/
0x05 时间线
2020-07-02 Check Point宣布研究报告
2020-07-03 VSRC宣布误差通告


京公网安备11010802024551号