在4种流行的开源VNC软件中发现数十种严重缺陷

已发现四个流行的开源VNC远程桌面应用程序易受总共37个安全漏洞的攻击,其中许多安全漏洞在过去20年中未被发现,而最严重的漏洞可能使远程攻击者入侵目标系统。

VNC(虚拟网络计算)是基于RFB(远程帧缓冲区)的开放源代码图形桌面共享协议,允许用户远程控制另一台计算机,类似于Microsoft的RDP服务。

VNC系统的实现包括在共享桌面的计算机上运行的“服务器组件”和在将访问共享桌面的计算机上运行的“客户端组件”。

换一种说法,

有许多免费和商业的VNC应用程序,可与Linux,macOS,Windows和Android等广泛使用的操作系统兼容。

考虑到当前有超过60万台VNC服务器可通过Internet远程访问,并且其中近32%连接到工业自动化系统,卡巴斯基的网络安全研究人员对四种广泛使用的VNC开源实现进行了审计,其中包括:

  • LibVNC
  • UltraVNC
  • TightVNC 1.x
  • TurboVNC

在分析了这些VNC软件之后,研究人员在客户端和服务器软件中总共发现了37个新的内存损坏漏洞:其中22个在UltraVNC中发现,10个在LibVNC中发现,在TightVNC中4个,在TurboVNC中仅1个。

卡巴斯基说:“所有错误都与不正确的内存使用情况有关。利用它们只会导致故障和拒绝服务,这是相对有利的结果。” “在更严重的情况下,攻击者可以未经授权访问设备上的信息,或者将恶意软件释放到受害者的系统中。
一些已发现的安全漏洞也可能导致远程代码执行(RCE)攻击,这意味着攻击者可以利用这些漏洞在目标系统上运行任意代码并获得对其的控制。

由于客户端应用程序接收更多数据并包含数据解码组件,开发人员在编程时经常会出错,因此大多数漏洞都会影响这些软件的客户端版本。

另一方面,服务器端相对而言包含一个很小的代码库,几乎没有复杂的功能,从而减少了内存损坏漏洞的可能性。

但是,该团队发现了一些可利用的服务器端错误,包括TurboVNC服务器中的堆栈缓冲区溢出漏洞,该漏洞使在服务器上实现远程代码执行成为可能。

但是,利用此漏洞需要在建立连接之前将身份验证凭据连接到VNC服务器或控制客户端。

因此,为了防止利用服务器端漏洞的攻击,建议客户端不要连接到不受信任或未经测试的VNC服务器,并且要求管理员使用唯一的强密码保护其VNC服务器。

卡巴斯基已向受影响的开发人员报告了该漏洞,所有漏洞均已发布了其受支持产品的补丁程序,但其创建者不再支持的TightVNC 1.x除外。因此,建议用户切换到2.x版本。