CVE-2026-70337PowerShell一键RCE:路径未规范化,导入即执行

admin 2026-08-27 05:28:25 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: CVE-2026-70337是PowerShellCore的高危路径遍历漏洞(CVSS8.8),根因在于路径解析前未规范化,攻击者可通过构造含…的恶意归档或模块,诱导用户执行Import-Module或Expand-Archive实现远程代码执行。受影响版本包括PowerShell7.4/7.5/7.6系列,官方已发布修复版本。建议立即升级并启用脚本块日志与路径越界写入告警,临时缓解措施包括收紧执行策略和归档预检。 综合评分: 87 文章分类: 漏洞分析,威胁情报,恶意软件,安全工具,安全运营


CVE-2026-70337 PowerShell 一键 RCE:路径未规范化,导入即执行

Ots安全 Ots安全

Ots安全

2026年8月26日 17:26 广东

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

威胁简报

恶意软件

漏洞攻击

前言

2026 年 8 月 11 日,微软在补丁日发布了 CVE-2026-70337,定位是 PowerShell Core 的相对路径遍历(CWE-23)漏洞,CVSS 3.1 基础评分 8.8(高危)。官方描述里一句话很关键:”Relative path traversal in Microsoft PowerShell Core allows an unauthorized attacker to execute code over a network.” 翻译过来就是:一个未经认证的远程攻击者,借助用户交互,能在目标机器上执行任意代码。

社区里有人把它叫”一键远程代码执行”,这个说法要拆开看。准确说是用户交互型(UI:R)的远程代码执行,攻击者构造的包只要被受害者导入或解压一次,路径遍历原语就被升级成代码执行。本文按 SentinelOne 漏洞库条目并交叉 MSRC、Armis、OSV、Feedly 多源核实后整理。

一、漏洞概览:跨平台,高危,尚无在野利用

CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H,逐项拆开看:攻击向量网络可达(AV:N),攻击复杂度低(AC:L),无需认证(PR:N),需要用户交互(UI:R),机密性、完整性、可用性三项全部为高(C:H/I:H/A:H)。

技术点评:这里要纠一个公开源的矛盾。SentinelOne 条目的影响表里把机密性标成 Low,但 CVSS 向量明明是 C:H。交叉 Armis、OSV、Feedly 三家后确认,机密性影响应为高,SentinelOne 表格系笔误。引用公开数据时这种冲突值得逐字段比对,不能照单全收。

几个定量的现状数据:EPSS(漏洞利用预测评分系统)利用概率 0.78%,目前无公开 PoC,无在野利用报告,CISA KEV 尚未收录。状态属于”已修补、可利用但尚未被武器化”的窗口期,恰恰是防御方抢跑的最佳时机。攻击模式编号 CAPEC-139,欧盟漏洞库 EUVD-2026-56768,GitHub 安全公告 GHSA-c9mw-2c7x-gc2r,归属 CNA 为微软本身。

二、根因:路径解析前缺一步规范化

漏洞出在 PowerShell Core 的文件处理例程对相对路径元素的不当校验。攻击者在输入里构造目录遍历序列,用 ..\../ 让解析结果逃出预期的工作目录。PowerShell Core 会从解析后的路径执行脚本和模块,于是路径遍历原语被直接升级为代码执行。

根因一句话:PowerShell Core 在解析模块或脚本位置之前,没能对路径输入做规范化(canonicalize),净化逻辑没有剥离或拒绝用户提供内容里相对路径中的 .. 段,路径解析因此能越过基目录(base directory),引用到攻击者预备好的可执行内容。

技术点评:这是典型的”信任边界外移”缺陷。PowerShell Core 本来是按用户意图去加载模块的,加载点由模块清单和 $env:PSModulePath 决定,前提是路径输入可信。一旦路径输入来自远程归档或模块仓库而未做规范化,信任前提就被绕过。补丁侧的修复方向也可以反推出来:在解析前先 canonicalize,再拒绝越界段,属于纵深防御式补强。

三、受影响版本与修复版本:三条线对齐升级

受影响范围跨 PowerShell 7.4、7.5、7.6 三条线,影响面铺得比较广,原因是 PowerShell Core 已是跨平台主力,大量 CI/CD 代理、自动化流水线和嵌入式服务都在跑。版本对照如下:

受影响范围 修复版本
PowerShell 7.4.0 - 7.4.18.x    → 7.4.19.0
PowerShell 7.5.0 - 7.5.9.x     → 7.5.10.0
PowerShell 7.6.0 - 7.6.4.x     → 7.6.5

需要留意 PowerShell 7.6 是 2026 年 3 月发布的 LTS 长期支持版本,基于 .NET 10.0 构建,与 Windows PowerShell 5.1 并存而非替代。这意味着一台机器上可能同时存在两套 PowerShell,Windows PowerShell 5.1 不在本次受影响范围,但 PowerShell Core 7.x 系列全部在列,盘点时别漏。

四、攻击链还原:交付到执行的四步

整条链的触发条件是用户交互,所以严格说不是零点击。”一键”指的是受害者执行一次 Import-ModuleExpand-Archive,攻击就落地。流程拆成四步。

第一步交付,攻击者把含 ..\../ 遍历序列的恶意归档、模块或脚本包托管到网络共享、归档下载或模块仓库,无需认证即可暂存 payload。第二步触发,受害者下载或获取内容后,用 PowerShell Core 执行 Import-Module 导入恶意模块、Expand-Archive 解压恶意归档,或执行引用外部资源的脚本,PowerShell Core 开始解析路径。第三步路径遍历,由于未做规范化,.. 段未被剥离,解析逃出基目录,引用或加载攻击者预备的恶意可执行内容。第四步代码执行,在调用用户上下文中执行任意代码,可用于初始访问(Initial Access)、横向移动(Lateral Movement)和持久化(Persistence),且跨 Windows、Linux、macOS 三个平台。

技术点评:跨平台是这条漏洞被定到高危的关键变量。过去 Windows PowerShell 时代的同类问题,落地半径基本锁在 Windows 域内;PowerShell Core 一跨平台,一台 Linux CI 节点被拿下的后果可能和一台域控一样严重。自动化流水线里 pwsh 跑外部脚本的场景尤其危险,因为”用户交互”这一环在流水线里往往退化成一次 git pull 或制品拉取。

五、检测特征:盯住解析后的越界写入

没有现成 IOC 可贴,检测要靠行为关联。几条高价值特征按 SentinelOne 与社区共识整理:PowerShell 操作后,预期解压或模块目录之外出现异常写入的文件;pwsh 进程在解压或导入后立即生成意外子进程,如 cmd.exe、bash 或脚本解释器;模块或脚本清单、归档条目里包含 ..\../ 路径段;pwsh.exe 或 pwsh 向不受信任主机发起出站连接,随后向系统目录写文件。

技术点评:检测逻辑上,把 Import-ModuleExpand-Archive 和脚本执行事件,与随后对敏感路径的文件写入做时间窗关联,是性价比最高的一条规则。日志侧要开 PowerShell 脚本块日志(Event ID 4104)和模块日志(Event ID 4103),再对在用户配置文件、启动目录或系统目录中创建可执行文件的 pwsh 进程单独告警。把 PowerShell 操作日志统一摄入 SIEM(安全信息与事件管理系统)做跨端点行为关联,比单机看日志有效得多。

六、修复与缓解:升级是唯一出路,附临时缓解

官方明确:除升级外没有可用的 workaround(临时缓解措施)。修复版本就是上一节列出的 7.4.19.0、7.5.10.0、7.6.5。各平台升级命令如下,先确认版本再升级:

# 确认已安装的 PowerShell Core 版本 pwsh -Command '$PSVersionTable.PSVersion'  # 在当前会话进程范围内强制 AllSigned 签名策略 pwsh -Command 'Set-ExecutionPolicy -Scope Process -ExecutionPolicy AllSigned'

各平台升级到修复版本的命令:

# Windows:更新 MSI 或用 winget winget upgrade Microsoft.PowerShell  # macOS:Homebrew brew upgrade powershell  # Linux:作为 .NET 全局工具安装时 dotnet tool update --global PowerShell # 或走系统包管理器(apt / dnf 对应包)

升级前的临时缓解有几条可用:避免打开或导入来自不受信任来源的 PowerShell 模块和归档;在约束语言模式(Constrained Language Mode)下运行 PowerShell Core 限制脚本范围;用拒绝包含 .. 遍历序列条目的工具对归档内容预检后再解压;上应用允许列表(allow-listing)防止 PowerShell 操作后执行未签名二进制文件。

技术点评:临时缓解里最值得立刻落地的是执行策略收紧和归档预检。AllSignedRemoteSigned 能把”导入即执行”的默认行为卡住一道;归档预检则直接掐断遍历序列进入解析的入口。但这两条都是降险不是消险,根因还是缺补丁,升级仍是唯一确定出路。

结束语

这枚漏洞的教训和 SharePoint 那条是同一类:一个本来服务于管理员便利的设计假设,在远程内容涌入后失效。PowerShell Core 跨平台铺开之后,用户交互这一道防线在很多自动化场景里被压薄成了”一次拉取”。EPSS 不到 1% 不代表安全,它代表的是窗口期还在手里。唯有把三条线的修复版本铺到位、把脚本块日志和路径越界写入告警同时落地,才能在这个窗口关上前先把自家阵地守稳。

END

公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址

文章广告会导致阅读影响 – 会开一段时间和关一段时间

公众号 | AnQuan7 (Ots安全)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Ots安全 Ots安全 Ots安全《CVE-2026-70337 PowerShell 一键 RCE:路径未规范化,导入即执行》

评论:0   参与:  0