Qubes 操作系统存在一个漏洞,该漏洞利用虚拟机管理程序严格隔离应用程序和操作系统组件(每类应用程序和系统服务都在独立的虚拟机中运行)。如果攻击者攻破其中一个虚拟机,该漏洞允许其绕过隔离,在宿主机环境(Dom0)上执行任意命令,从而控制整个操作系统。当用户使用“qvm-copy-to-vm”工具将文件从宿主机环境复制到攻击者控制的虚拟机时,该问题就会显现。该漏洞已在 qubes-core-dom0-linux 软件包更新 4.3.22 中修复。
问题存在于 qvm-copy-to-vm 工具中,是由访问时返回的错误处理不当引起的。 虚拟机该漏洞源于 qvm-copy-to-vm 工具启动 kdialog 或 zenity 程序来显示错误信息,它使用 system() 函数并将复制失败的文件信息作为命令行选项之一。文件名清理仅限于去除非 ASCII 字符和双引号,而没有检查 shell 解释的特殊字符,例如“`”和“$”。
从主机系统复制文件完成后,虚拟机处理器会发送操作确认信息,其中包含最后接收到的文件名等信息。攻击方法是返回错误代码而非确认信息,并指定一个包含命令解释器可处理的特殊字符的文件名,作为复制失败的文件。收到错误后,主机处理器会使用 `system()` 命令弹出一个包含错误文本的对话框,并将攻击者在命令行中返回的文件名传递给该对话框(例如,指定“file`id`”将在主机上运行 `id` 命令)。
来源: opennet.ru
