Hacker News 中文摘要

RSS订阅

QubesOS中通过复制到VM错误报告后门导致的任意代码执行 -- Arbitrary code execution in QubesOS via copy-to-VM error reporting backchannel

Qubes OS发布安全公告QSB-118,指出qvm-copy-to-vm工具在错误报告过程中存在漏洞,允许恶意qube向dom0注入任意代码,攻击者可借此完全控制系统。用户需正常更新以修复此问题。

正文

好的,这是根据您的要求,对原文主要内容进行的中文重述,已保留关键细节并删除了与主题无关的说明性内容(如PGP签名验证教程、公告目的解释等)。


Qubes安全公告 (QSB) 118:qvm-copy-to-vm 错误报告中的 Dom0 任意代码执行漏洞

摘要 当用户使用 qvm-copy-to-vm 工具将文件从 Dom0 复制到一个已被攻陷的恶意 qube 时,该恶意 qube 可以向 Dom0 注入任意命令。

影响 如果攻击者已攻陷一个 qube,并且用户从 Dom0 向该被攻陷的 qube 发起 qvm-copy-to-vm 操作,攻击者便可利用此漏洞向 Dom0 注入任意命令,从而完全控制整个 Qubes OS 系统。

技术细节 漏洞存在于 qvm-copy-to-vm 的错误报告处理流程中。该工具使用“qfile”协议进行文件传输,协议中包含目标 qube 向源端(Dom0)发送的传输确认信息,其中包含最后接收文件的名称。当发生错误时,Dom0 会显示一个包含该文件名的 GUI 错误消息。

漏洞成因如下: 1. wait_for_result() 函数在处理接收到的文件名时,调用了 sanitize_remote_filename() 函数进行过滤。 2. 然而,sanitize_remote_filename() 函数仅移除了非 ASCII 字符和双引号,但保留了 shell 元字符(如 $、;、| 等)。 3. 随后,call_error_handler() 函数调用 Dom0 版本的错误报告函数 display_error(),该函数使用 system() 来启动错误对话框。 4. 由于 system() 会通过 shell 执行命令,而文件名中的 shell 元字符未被过滤,攻击者便可以通过构造一个包含恶意命令的文件名,在 Dom0 中执行任意代码。

注意:qvm-copy-to-vm 的虚拟机(VM)端版本不受影响,因为其错误报告函数使用的是 execlp() 而非 system(),避免了 shell 注入的风险。

受影响系统 所有 Qubes OS 版本均受影响。

修复方案 该漏洞的修复补丁已发布。对于 Qubes 4.3 版本,需要在 Dom0 中更新 qubes-core-dom0-linux 软件包至版本 4.3.22。该软件包将在社区短暂测试后,从 security-testing 仓库迁移至 current(稳定)仓库。届时,用户应通过 Qubes Update 工具或其命令行等效工具进行安装。

致谢 该漏洞由 Tim C. 发现。

评论

根据评论内容,总结如下:

主要观点与论据:

  1. 漏洞严重性:多数评论认为该漏洞(system()调用导致命令注入)非常危险,尤其是攻击者可控制文件名并提升至dom0权限。

    • 引用:charcircuit: "Another example for why system() is so dangerous to use."
    • 引用:msm_: "this vulnerability occurs only when doing copy-to-VM from Dom0... when it works, it elevates privileges straight to Dom0."
  2. 对QubesOS的总体评价:评论者对QubesOS的安全设计印象深刻,但指出其存在局限(如缺乏图形加速)和潜在风险(如漏洞暴露)。

    • 正面:polotics: "I'm still very impressed by qubes"
    • 负面:12995816: "this bug is so bad that it seems like an infiltration of Qubes at best or Qubes being a honeypot at worst."
  3. 安全实践与沟通:部分评论赞赏Qubes团队的安全公告清晰、严谨,但批评代码审查不严(2020年已记录问题却未修复)。

    • 正面:TacticalCoder: "Qubes is ran by people who take security seriously"
    • 批评:Allwinkt: "in 2020 they explicitly documented that the remote filename is attacker controlled, but still allowed it to reach system()... This should have been caught in review!"
  4. 对安全前景的悲观:少数评论认为现代安全环境已无望,或质疑QubesOS的长期可行性。

    • 引用:ka3ki: "it's kinda doomed at this point"
    • 引用:pdp: "Most security bugs are due to improper string validation and use."

平衡性说明:
- 正面观点强调QubesOS的设计理念和团队专业性,但负面观点指出其代码实现缺陷和潜在后门风险。
- 多数评论认可漏洞的严重性,但认为攻击面有限(仅影响dom0到VM的复制操作)。
- 对安全公告的沟通方式普遍好评,但对代码审查的疏忽表示失望。