Windows LNK文件漏洞修复之争:第三方补丁与微软的不同应对策略
漏洞背景
Windows快捷方式文件(.lnk)长期以来一直是攻击者方便隐藏恶意负载的载体。漏洞的核心在于:当从互联网下载LNK文件时,威胁行为者可以在其“目标”字段中隐藏有害负载,并通过添加大量空白字符填充,使得任何检查该字段的人都无法看到实际负载。
Windows资源管理器原本只显示快捷方式属性中命令的前260个字符。附加在长串空格之后的任何内容对用户都是不可见的。这使得攻击者可以构造一个运行超长PowerShell或BAT脚本的.lnk文件,但用户查看其属性时只能看到前260个字符——这些字符大部分可以是空白,从而将恶意元素完全推离视线。
对于受害者来说,.lnk文件看起来像是打开文件夹或启动受信任的应用程序,但实际上,它可以执行任意脚本、投放器或“就地取材”(living-off-the-land)命令。
微软的立场与修复
微软一直不愿将此问题归类为漏洞。在2025年11月的一份公告中,微软表示:“我们调查了这份报告,并确定它不符合归类为漏洞的标准。Microsoft Defender已有检测机制来检测和阻止此类威胁活动,智能应用控制通过阻止来自互联网的恶意文件提供了额外的保护层。”
然而,第三方补丁提供商0patch在博客文章中指出,最近的Windows更新已悄然解决了此问题,强制“目标”字段显示所有参数。尽管如此,该公司表示,漏洞利用仍然可能成功。它声称自己的微补丁提供了更有效的解决方案。
这些修复措施是在多年报道的LNK文件被利用之后出现的:朝鲜、伊朗、俄罗斯的APT组织,以及最近针对欧洲外交官的中国关联活动都曾使用此方法。
该问题被追踪为CVE-2025-9491,安全分析师为其分配了高严重性CVSS评分7.0。
0patch研究人员确认,在微软“悄悄地”将修复程序捆绑到其11月Windows更新后,问题已得到部分解决。研究人员表示:“在其63个已修补的漏洞中,没有任何提及与此问题相关的内容。”并补充说,修复可能是在功能缺陷而非安全漏洞的名义下应用的。
研究人员补充说:“现在,.lnk文件的‘属性’对话框会显示整个目标命令及其参数,无论它有多长。”微软没有立即回应CSO的置评请求。
0patch的替代方案
0patch对微软的补丁有异议,认为它只修复了用户界面(可见性)部分,而没有修复底层的Windows行为(执行恶意命令)。微软补丁背后的假设是,一旦.lnk目标字段完全显示,用户可以手动发现其中的恶意命令。
0patch认为这可能在两个方面失败。首先,只有经验丰富的IT用户才能仅通过查看目标字段来判断其是否携带恶意可执行文件。其次,在大多数合法情况下,目标字段超过260个字符的.lnk文件是通过编程方式(使用Windows API)创建的,并且默认由Windows资源管理器自动处理,而非手动处理。
因此,如果用户未能识别并阻止,微软的补丁仍然允许隐藏的恶意脚本执行。
为了解决这个问题,0patch为其微补丁提出了自己的方案,适用于从Windows 7到11 22H2的版本,以及从Windows Server 2008 R2到2022的版本。如果进程通过Windows资源管理器打开.lnk文件且目标字段超过260个字符,它只需将目标截断为260个字符,并显示警告,提示可疑快捷方式已被缩短。这既能提醒用户,又能防止恶意执行。0patch声称,该修复成功处理了Trend Micro此前识别的1000多个恶意快捷方式。