Foxit PDF Reader 本地提权漏洞分析:普通用户如何获取SYSTEM权限

导语:Foxit PDF Reader,全球装机量数千万的PDF阅读器,近日被安全研究人员挖出一个”祖传”本地提权漏洞。攻击者只需在目标机器上拥有普通用户权限,就能借助Foxit的更新服务一路拿到Windows最高权限——NT AUTHORITYSYSTEM。这事儿吧,红队看了狂喜,蓝队看了沉默,且听我细细道来。


一、漏洞概述

安全研究人员Luke Paris日前披露了Foxit PDF Reader中的一个本地权限提升漏洞,该漏洞已被分配编号CVE-2026-57239

漏洞的核心逻辑并不复杂:Foxit PDF Reader在用户 %APPDATA% 目录下有一个更新程序 FoxitPDFReaderUpdater.exe,该程序在运行时会对当前目录下的多个DLL文件进行加载,其中 winspool.drv 这个驱动文件没有任何签名校验。更骚的是,ProgramData 目录下有一个 FoxitData.txt 文件是普通用户可写的,而Foxit的后台服务 FoxitPDFReaderUpdateService.exe 以SYSTEM权限运行,会持续监控这个文件并触发更新程序执行。

于是,攻击链就串起来了:低权限用户写入恶意文件 → 触发SYSTEM权限的更新服务 → 加载用户目录下的恶意DLL → 成功提权

受影响版本为 Foxit PDF Reader 2026.2 之前的所有版本。官方已在最新版本(2026.2)中修复。


二、技术分析

2.1 攻击入口:被遗忘的winspool.drv

研究人员在分析更新程序行为时发现,FoxitPDFReaderUpdater.exe%APPDATA% 目录下会尝试加载多个DLL文件,其中包括 winspool.drv——这是一个打印机驱动文件,本质上也是PE文件,加载时会执行 DllMain

Foxit对其他DLL做了签名校验,但 winspool.drv 完全没有任何校验,直接就加载了。安全研究人员 Luke Paris 成功通过侧加载这个驱动文件实现了代码执行。

Foxit更新程序DLL加载流程

2.2 提权关键:可写的FoxitData.txt

光有代码执行还不够——毕竟用户目录下的程序跑的还是用户权限。研究人员进一步发现,FoxitPDFReaderUpdateService.exe 服务以 NT AUTHORITYSYSTEM 权限运行,会持续监控以下文件:

C:ProgramDataFoxit SoftwareFoxit PDF ReaderFoxitData.txt

而这个目录的写入权限属于普通用户组。

研究人员通过日志分析和逆向工程发现,FoxitData.txt 文件中包含一段 AES-128-CBC加密的指令数据,密钥硬编码在服务二进制中。服务会读取该文件,解密后执行相应的更新命令——而这个更新命令就是启动 %APPDATA% 目录下的 FoxitPDFReaderUpdater.exe但以SYSTEM权限运行

于是整个提权链就完美闭合了:

  1. 攻击者在 %APPDATA%Foxit SoftwareFoxit PDF Reader 目录下放置恶意 winspool.drv(代理DLL)
  2. 攻击者向 ProgramDataFoxitData.txt 写入精心构造的加密指令
  3. SYSTEM权限的Foxit服务读取并解密指令后,启动用户目录下的更新程序
  4. 更新程序加载同目录下的恶意 winspool.drv
  5. 恶意代码以SYSTEM权限执行,game over

2.3 关于杀软绕过

你可能会问:这套操作杀软不会拦吗?研究人员指出,尽管Foxit有内置的签名校验机制来防止任意可执行文件被运行,但结合 winspool.drv 的侧加载,即使更新程序本身被保护,恶意代码仍然可以通过DLL注入的方式执行。而且,虽然Foxit在之前的版本中已经修补过部分DLL侧加载路径,但 winspool.drv 这个特殊的驱动文件一直未被纳入校验范围。


三、POC获取与使用

安全研究人员已在GitHub上发布了完整的漏洞利用工具:https://github.com/Paradoxis/CVE-2026-57239

3.1 使用方法

# 编译
cargo build --release

# 检测当前版本是否受影响
pdflpe.exe check

# 执行提权 exploit
pdflpe.exe exploit

# 清理 exploit 残留
pdflpe.exe cleanup

3.2 自定义参数

参数说明默认值
-i, --install-dirFoxit安装目录C:Program FilesFoxit SoftwareFoxit PDF Reader
-t, --technique利用技术auto-detect

支持的利用技术:win-spool-sideload(winspool.drv侧加载)和 updater-link-sideload(更新链接侧加载)。


四、检测与防御建议

4.1 入侵检测指标

蓝队同学注意了,以下是重点监控指标:

  • ProgramDataFoxit SoftwareFoxit PDF Reader 目录下 FoxitData.txt 出现异常修改
  • %APPDATA%Foxit SoftwareFoxit PDF Reader 目录下出现非正常的 .drv 文件(尤其是 winspool.drv
  • 用户目录下的 FoxitPDFReaderUpdater.exe 突然以SYSTEM权限运行
  • Windows事件日志中出现异常的令牌操作和来自服务进程的高权限进程创建事件

4.2 修复方案

最佳方案:将Foxit PDF Reader升级至 2026.2 或更高版本,官方已完整修复该漏洞。

临时缓解

  • 启用 AppLocker 或 Windows Defender Application Control (WDAC) 策略,限制 %APPDATA% 目录下未经授权的模块加载
  • 监控 ProgramDataFoxit Software 目录的文件写入行为
  • 在企业环境中对Foxit的更新服务进行严格的行为基线管理

五、总结

这事儿吧,从两边儿看都挺有意思的。

红队这边,研究人员 Luke Paris 的分析思路非常清晰:从用户目录下的更新程序入手找DLL侧加载 → 发现SYSTEM权限服务监控可写文件 → 构造完整的提权链。这种”组合拳”式的漏洞利用思路,正是高水平红队的标配。

蓝队这边呢,这个漏洞也敲了一个警钟:不要以为装了杀软、打了补丁就高枕无忧了。应用自身的更新机制、服务与用户空间的交互逻辑,往往是容易被忽视的攻击面。更重要的是——千万别小看那些以SYSTEM权限运行的后台服务,它们可能正在默默监控着普通用户都有权写入的配置文件。

Foxit作为全球最流行的PDF阅读器之一,用户遍布各行各业。一旦攻击者获取了机器上的初始 foothold(比如通过钓鱼获取了普通用户账号),这个漏洞就能帮助攻击者快速完成权限提升,拿下整台机器。所以,还在用老版本的同学——赶紧更

版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容