漏洞
登录框出现以前,RDP 已经住进旧内存——重走 CVE-2026-56190
CVE-2026-56190 使关闭 NLA 的可达 Windows RDP 服务在身份验证前进入一条未完整建立初值的连接对象路径;所有受影响且仍有维护资格的系统都应安装微软当前映射的安全更新或受支持后继包并完成重启,同时把 NLA、入口来源、历史暴露和异常证据作为独立验收项。

文章导航
1 先更新、重启并收紧入口,再判断历史上发生过什么
远程桌面登录框像一间房的前台,服务端在它出现以前已经完成多轮协议协商和对象分配。CVE-2026-56190 位于这段准备过程。微软漏洞页将其列为 Windows RDP 远程代码执行漏洞,CWE 为 908,CVSS 3.1 为 9.8。攻击路径要求目标 RDP 可达且 NLA 关闭;攻击者无需账户或本地用户配合。
NLA 是网络级别身份验证,Windows 通常通过 CredSSP 在完整远程桌面会话建立前验证凭据。它改变匿名对端能够走到的协议深度,因此是补丁展开期间最有价值的入口边界。它不会替换易受影响组件,也不会回答策略过去何时关闭、旁路何时存在。修复、入口硬化和历史调查必须各自留下证据。
9.8、微软“重要”产品严重性和“较不可能”利用评估回答的是不同问题。CVSS 向量中的网络可达、低攻击复杂度、无需权限、无需用户交互以及高机密性/完整性/可用性影响,描述技术后果;微软的产品等级与利用评估描述其发布时的处置和可利用性判断。SOSEC 的“严重”标签沿用 9.8 技术分值,正文保留微软原始措辞。补丁优先级由受影响构建和入口条件决定,事件置信度由本地时间线与主机证据决定。
生产默认动作很明确:按产品、版本和架构选择微软 2026 年 7 月实时 CVRF当前列出的 Vendor Fix,或安装适用于该分支的受支持后继累积更新,随后完成要求的重启。NLA 和严格入口控制立即降低匿名远程触达机会,更新负责替换易受影响的实现。历史调查另行回答补丁前是否存在可达、非 NLA 的危险窗口。
微软在 CVRF 中把所有映射更新标为需要重启。截至 2026 年 7 月 27 日,实时映射仍以 7 月 14 日安全更新为当前修复入口。Windows 11 26H1 的 x64 与 ARM64 现均指向 KB5101649、OS 构建 28000.2525;此前把 x64 停在六月 KB5095051 / 28000.2269 的清单已经失效。
1.1 补丁状态与 NLA 状态组成四格处置
- 已更新且要求 NLA:进入常规运行验收,确认安装后的启动、允许路线、拒绝路线和业务功能。
- 已更新但 NLA 关闭:本 CVE 的代码修复已经生效,入口配置仍需整改并设置责任人与完成时间。
- 未更新但要求 NLA:匿名触达机会较低,系统仍需进入补丁队列;任何临时关闭 NLA 的操作都会改变优先级。
- 未更新且 NLA 关闭:进入立即响应队列,先收紧来源、保全相关日志,再更新、重启和验收。
入口发现从目标主机反向展开。实际监听端口可能采用 3389 之外的值;RD Gateway 只覆盖真正经过网关的路线;用户网、云安全组、备用公网地址、负载均衡后端和应急管理网都可能形成旁路。外部扫描只能描述某个观察点在某个时刻看到的结果,资产清单、主机监听、Windows Firewall 规则组、上游策略和网关配置共同构成权威路线图。
多个扫描器报告同一 CVE 时,保留每条记录的采集时间和方法,再按稳定资产身份、产品、架构、完整 OS 构建、更新状态与最后启动时间合并。代理显示“更新已安装”、网络侧仍连到旧服务的冲突会转化为重启或资产归并任务。删除冲突记录会掩盖最有价值的证据。
主机侧证据同时读取服务配置、实际监听套接字、有效防火墙规则和策略结果;网络侧证据从每个获准来源分别测试目标地址与网关后端。两侧结果以资产 ID、目标地址、端口、采集时间和观察点连接。这样可以区分策略已下发但尚未生效、服务已停但上游仍转发、同一名称指向多台主机以及扫描命中旧地址等常见冲突。
旧客户端若暂时无法通过 NLA,只能在网关或专用跳板之后获得窄范围例外。例外记录写明来源、目标、责任人、监控、恢复路线和自动到期时间。改端口、限速或只重启旧构建不会建立同等保护。

2 预认证连接如何把 ShareClass 交给状态机
2.1 六个连续步骤构成缺陷路径
- 预认证 RDP 阶段:NLA 关闭时,匿名对端可以进入连接发起与基础设置交换。MS-RDPBCGR 连接序列把该阶段放在许可、能力交换和最终化以前。
- 客户端设置进入连接代码:
WDWConnect处理 Core、Security、Network、Cluster、Monitor、Message Channel 与 Multitransport 等客户端数据族,建立服务器侧连接状态。 - 对象分配:
WDWConnect接近尾部时调用WDWNewShareClass;旧样本为ShareClass申请0x11f8字节。 - 旧初始化与发布:旧函数执行六次存储后,把指针写入父级
tagTSHARE_WD的+0x80位置。该写入让其他代码能够从父对象取得新对象。 - 状态机消费:调用者随后进入
SM_Init与SM_Connect。公开材料没有给出首先读取旧值的私有成员,也没有给出成员到最终写入的完整消费者路径。 - 微软修复路径:固定样本在父级发布之前调用新增可见的
ShareClass::ShareClass,把系统化初始化放到消费者可达以前。
这条顺序连接了三类证据。微软公告给出 NLA 关闭时的未认证网络条件和 RCE 后果;开放规范给出早期协议阶段;签名二进制与公共符号给出分配、发布和状态机交接。具体触发字段仍属于未公开实现信息,任何 GCC 数据块都缺少获得首触发器标签的公开证据。
这里的 GCC 是 RDP 早期连接建立中用于承载客户端与服务器设置的 Generic Conference Control 数据。客户端在 X.224 协商后,通过 MCS Connect-Initial 内的 GCC Conference Create Request 提交若干客户端数据块。WDWConnect 所处理的 Core、Security、Network、Cluster、Monitor、Message Channel 和 Multitransport 家族分别描述版本与桌面属性、安全能力、静态虚拟通道、会话行为、显示布局以及后续传输能力。它们解释网络输入如何塑造连接对象,同时没有公开证据指出哪一项是本漏洞的首个触发字段。
开放规范把完整连接拆成连接发起、基础设置交换、通道连接、安全启动、安全设置交换、许可、能力交换和连接最终化等阶段。本文只用这套顺序确认时机:承载客户端设置的 MCS/GCC 数据在登录桌面与最终能力确认以前进入服务器连接建立。规范没有公开 Windows 私有函数与字段的映射,所以函数身份来自 PDB,写入与发布顺序来自固定机器指令。协议顺序、实现坐标和安全后果分别由各自最强的来源承担。
父对象 +0x80 的指针写入是生命周期边界。程序未写出名为 ready 的显式标志。从这一刻起,持有父对象的代码可以取得 ShareClass。状态机随即继续初始化和连接阶段;清理、能力缺失和协商失败等非主路径也可能访问连接状态。发布位置因此比某次正常登录是否成功更能说明对象何时被当作可用状态。
通用 C++ 堆分配保证大小与对齐,不承诺返回全零内容。开发和测试环境中的新页面可能偶然呈现零值,服务进程长期运行后则会复用先前释放的存储。判断依据来自构造写入与发布顺序;一次调试运行中“看起来都是零”的内存快照只反映当次分配器历史。
协议家族还说明普通客户端测试为什么覆盖不足。显示器布局、静态虚拟通道、集群标志和多传输能力都可能改变后续写入与清理路线;客户端没有声明某项能力时,相应的普通写入也可能缺席。这些分支用于解释消费者范围,具体触发排列仍未公开。安全修复的价值恰在于所有已审路线从同一套初值出发,无需依赖每个可选分支后来补写。
2.2 初始化覆盖表同时写出残余未知
下表是 Server 2022 x64 两个固定样本的受控静态测量。它描述机器指令观察到的写入覆盖;微软私有类型的完整字段表仍未公开。
| 测量项 | 旧样本 | 固定样本 | 证据含义与边界 |
|---|---|---|---|
| 对象分配 | 0x11f8 / 4,600 字节 | 同样大小 | 对象布局总体尺寸未变;该数值只绑定 Server 2022 x64 样本。 |
| 发布前头部存储 | 偏移 0x00–0x1b,共 28 字节 | 构造路径重建同组头部值 | 旧路径在该覆盖后把指针写入父级 +0x80。 |
| 连续清零 | 未观察到 | 四段 memset:+0x4c/0xbac、+0xbfc/0x3e4、+0xff0/0x11a、+0x1150/0x70,合计 4,378 字节 | 这是指令参数的区间并集。 |
| 直接零写 | 头部以外未计入 | 27 处存储,去重覆盖 170 字节 | 与连续清零合计观察到 4,548 字节零写覆盖。 |
| 特殊默认值 | 未观察到对应构造写入 | +0x11dc = 0x80 | 固定路径包含有意的非零初值,初始化同时包括清零和默认值写入。 |
| 计数写入以外的位置 | 发布时大范围保持分配器旧值 | 按上述算术剩余 23 个字节位置 | 公共 PDB 没有提供完整私有成员布局;这些位置可能包含填充或未识别字段,语义完备性仍未建立。 |
因此,本文采用两层结论:微软将 7 月更新声明为 CWE-908 的 Vendor Fix;SOSEC 在固定 Server 2022 样本中观察到发布前的系统化初始化。首个过期成员、完整私有类型覆盖和具体消费者路径仍未知。
旧函数的头部写入包含一个父对象指针和五个 32 位值;固定构造路径重建这些既有值,再执行表中的其余初始化。头部值能够证明对象与父级关系以及有限早期值已设置,无法代表整个私有类型已具备合法初值。固定分支保留外部对象尺寸、父级关系和后续状态机接口,把变化集中在消费者可达以前的初始状态。
覆盖表把“观察到写了哪些字节”与“这些字节在私有 C++ 类型中代表什么”分开。前者可以从指令宽度和区间并集复算,后者需要完整成员布局、继承关系和消费者读点。剩余位置可能是对齐填充,也可能包含公共符号未描述的成员;当前材料不足以逐项分类。后续出现私有类型或消费者证据时,应从这些残余位置重新核对;语义完备性必须由类型与消费者证据决定。
固定分支还显示了一个可维护性变化:默认值集中进入构造路径,随后才发布对象。新增字段若继续遵循这条路径,代码评审可以在一个位置检查初值和特殊默认值。WIL 功能门负责把这段实现纳入 Windows 维护体系;生产管理员只需验收受支持包、构建和重启,不应把内部功能编号改造成新的配置依赖。
3 影响结论止于微软确认的写入影响与 RCE 后果上限
3.1 CWE-908 在这里表现为对象初始状态不确定
通用堆分配提供足够且对齐的存储,字节内容可能来自同一进程先前释放的对象。客户端能力组合、连接数量、错误路线和清理时机又会改变后续写入与消费顺序。旧路径发布对象时,消费者获得的是一个已经可达、初始状态仍不完整的连接对象。
堆复用带来不确定性,也带来利用工程上的约束。并发连接、服务线程、分配器行为、地址随机化和其他组件活动都会改变同一尺寸存储的来源;远程输入能影响多少分配节奏、能否稳定留下所需旧值,目前没有公开实验回答。微软“较不可能”的评估与这些约束相容,公告没有给出其完整理由。防守决策无需等待稳定堆布局出现,因为受支持更新已经把对象初值从分配器偶然状态中移除。
微软 FAQ 描述的因果链是:特制 RDP 流量与未正确初始化的内存交互,产生内存破坏,攻击者能够影响内存被写入的方式,并可能进一步控制系统。公开证据支持远程代码执行这一后果上限。公开材料没有提供稳定任意地址/任意值写入原语、首个旧值成员、目标地址或可复用利用包。
“影响内存写入方式”是本报告能够公开采用的最窄机制表述。一个旧值被解释成长度、索引、状态、计数或间接引用时,后续代码可能越界操作或选择错误目标;哪一种解释实际发生仍待私有消费者路径确认。报告据此保留微软的 RCE 上限,同时把可控粒度、目的地址和可靠性留在未知栏。
微软发布时给出的产品严重性为“重要”,利用评估为“较不可能”,公开状态为未披露且未发现利用。站点“严重”标签来自 9.8 技术分值。资产处置继续保持高优先级;事件定性依赖本地时间窗和主机证据。
公开状态同样绑定查询时间。微软在发布时没有记录公开披露或已知利用,7 月 27 日复核的官方范围仍把这项修复作为当前入口;这类字段以后可能更新。团队在工单中保存查询日与来源,后续变更会调整猎捕深度和沟通内容。当前“未发现利用”只描述微软公开记录,无法替代组织自己的网关、主机与身份审查,也不会降低受影响资产的更新要求。这样可以让补丁优先级保持稳定,同时让调查范围随新证据变化。
3.2 历史调查把易受影响、暴露、尝试和失陷分开
- 易受影响:产品与架构落入微软范围,运行构建低于对应固定地板,或更新已经安装但尚未完成重启。
- 暴露:易受影响期间存在可达 RDP 路线,且有效 NLA 关闭。路线包括直连、网关后端旁路、备用地址和临时防火墙规则。
- 疑似尝试:危险窗口内出现异常短连接集群、协商失败、Remote Desktop Services 故障、WER 或相关转储,并与来源和时间相关。
- 失陷:主机或身份侧出现未经授权的执行、子进程、凭据访问、持久化、横向活动或业务对象变化。
调查材料至少覆盖五类:产品/架构/构建/KB/启动,RDP/NLA/入口历史,连接与 RD Gateway 身份,服务事件/WER/转储,以及管理员、扫描器和维护上下文。所有材料统一到稳定资产身份和时间线,并保留原始时区、采集范围和保留期。
时间线从危险窗口两端建立。起点取受影响构建首次进入运行环境或入口首次变为可达且 NLA 关闭的较晚时刻;终点取固定构建完成重启、入口收紧或资产退役的较早时刻。包安装时间早于重启并不关闭窗口,当前策略截图也无法代表周末排障期间的旧配置。每次策略变更、网关路由调整、临时防火墙放行和镜像恢复都要进入同一时间轴。
网络来源还需要转换为可追溯身份。NAT、VPN、RD Gateway、DHCP、云负载均衡和弹性地址会让一个 IP 代表多人,也会让同一设备先后使用不同地址。网关用户、设备证书、认证事件、租约、云实例身份和已知时钟误差与流记录一并保存。IP 是观察值,归因来自这些记录的联合。
网络字节签名当前无法承担完整检测。RDP 早期协商存在大量合法变体,公共材料又没有触发包。更可靠的告警把低于固定构建、NLA 关闭、密集短连接、近时服务或 WER 异常、异常重启或子进程联合起来。每个信号单独出现时都有常见解释,时间相关后的组合才进入保全队列。
负面结果必须附带覆盖范围。“未见异常 RDP”至少写明入口、目标、来源、时间段、采集方法和保留期。七天流量无法覆盖六个月危险窗口,补丁后健康进程转储也无法重建故障瞬间。缺失区间直接记录为不可观察,并给出下一项可取得的数据;风险等级由已知条件决定,不能由缺失日志自动降低。
出现可疑故障时先保存原始事件通道、WER 目录、服务转储、EDR 时间线、网关审计、防火墙记录和有效策略,再执行路线收紧、更新与重启。转储包含会话和内存材料,应按高敏证据保管。补丁工作可以与取证并行,成功更新只关闭未来漏洞窗口,历史未知仍保留在事件结论中。
转储本身也需要上下文。记录异常代码、故障线程、符号化调用栈、服务重启、邻近对象和来源时间;驱动、资源耗尽、第三方扩展与其他缺陷都可能让远程桌面组件崩溃。相似主机在相近时间出现相同故障会增强关联,单个模块名只负责把调查引向正确组件。
4 2026 年 7 月 27 日的微软修复映射
4.1 产品、架构、构建与 KB 必须成组匹配
下表按微软实时 CVRF 的 27 个 Known Affected 产品项合并为 11 个运维行。固定构建是历史首个修复地板;截至核对日,表中 KB 仍是 CVRF 列出的当前 Vendor Fix。后续受支持累积更新可以继承修复,验收时仍按产品与架构核对适用性。
| 产品族 | 架构或维护范围 | 最低固定构建 | 当前 Vendor Fix |
|---|---|---|---|
| Windows 10 1607 / Server 2016 | x86、x64;Server / Core | 10.0.14393.9339 | KB5099535 |
| Windows 10 1809 / Server 2019 | x86、x64;Server / Core | 10.0.17763.9020 | KB5099538 |
| Windows 10 21H2 | x86、x64、ARM64;具备更新资格的版本 | 10.0.19044.7548 | KB5099539 |
| Windows 10 22H2 | x86、x64、ARM64;具备更新资格的版本 | 10.0.19045.7548 | KB5099539 |
| Windows 11 24H2 | x64、ARM64 | 10.0.26100.8875 | KB5101650 |
| Windows 11 25H2 | x64、ARM64 | 10.0.26200.8875 | KB5101650 |
| Windows 11 26H1 | x64、ARM64 | 10.0.28000.2525 | KB5101649 |
| Windows Server 2012 | Server / Core;有效 ESU 资格 | 6.2.9200.26226 | KB5099445 |
| Windows Server 2012 R2 | Server / Core;有效 ESU 资格 | 6.3.9600.23291 | KB5099444 |
| Windows Server 2022 | x64 | 10.0.20348.5386 | KB5099540 |
| Windows Server 2025 | x64;Server / Core | 10.0.26100.33158 | KB5099536 |
产品出现在 CVRF 范围中,只回答漏洞与修复映射。补丁获取资格继续受 edition、维护渠道、ESU 与许可约束。微软对 Server 2012 / 2012 R2 ESU 的第三年支持截至 2026 年 10 月 13 日;无有效资格的旧系统应进入迁移、长期隔离或退役计划。Windows 10 也应逐资产核对实际 LTSC/ESU 维护资格。
26H1 映射的变化说明资产台账必须保存来源时间和完整构建。7 月 17 日固定研究材料曾记录不同的 x64 入口;7 月 27 日实时 CVRF 已把 x64 与 ARM64 同时映射到同一七月更新。生产选择以最新官方记录为准,旧记录保留为“当时看到什么”的版本化证据。仅存 KB 名称而缺少产品、架构、构建与查询时间,会让后续更正无法可靠落到具体资产。
4.2 部署记录证明运行代码已经改变
每台资产保留产品族、版本、edition、架构、完整 OS 构建、适用 KB 或后继包、安装完成时间和最后启动时间。Windows Update、CBS 或管理平台的包状态,产品对应的构建地板,以及晚于安装的成功启动三项共同证明修复进入运行环境。单个 DLL 版本只用于研究样本佐证。
“最低固定构建”和“当前 Vendor Fix”承担不同用途。前者适合判断历史时间线何时首次越过修复边界;后者给出核对日的官方安装入口。后续累积更新会抬高构建号并继承先前安全修复,资产验收应接受适用于同一产品、架构与维护渠道的受支持后继包。包号高、产品不匹配或架构不匹配都不能形成有效证明。
组件版本也有自己的维护修订号。Server 2022 七月操作系统构建为 20348.5386,本文固定的 rdpserverbase.dll 文件版本为 20348.5382;这种差异符合 Windows 组件化维护。生产看板用完整 OS 构建、适用包和重启作主证据,研究人员再用 DLL 哈希与符号核对特定样本。
会话主机停止新登录并排空;集群节点逐台退出分发、更新、重启和返回。金镜、自动扩容模板、离线 VHD、灾备副本与关机机器具有独立资产身份。先修源镜像并启动验收实例,随后替换部署源;未知旧镜像恢复时先进入只允许更新的隔离路线。
发布波次先选有带外恢复能力、业务代表性强且入口受控的主机。每一波在继续前核对安装结果、启动、有效 NLA、允许与拒绝路线、必要重定向和观察窗口;达到预先定义的故障阈值就停止扩展。停止条件、恢复负责人和业务回退路径在安装前确定,避免故障发生后临时讨论哪些证据可以忽略。
部署前确认带外或云控制台、配置备份、故障判据和恢复负责人。安装失败的资产维持入口收口并重新排期。任何回滚记录都要写入风险恢复动作,避免旧构建在工单关闭后继续运行。
5 研究验证与车队验收使用两套矩阵
5.1 研究矩阵验证本文的静态重建
| 问题 | 输入 | 责任人 | 通过条件 |
|---|---|---|---|
| 制品身份 | Catalog 条目、MSU 摘要、组件清单、签名 PE、CodeView 与 PDB 键 | 二进制研究员 | 包、架构、版本、签名、PE 结构与符号键全部一致;任一项冲突即停止比较。 |
| 生命周期顺序 | 分配调用、六次旧存储、父级发布、构造调用、SM_Init、SM_Connect | 逆向分析员 | 固定样本中构造支配已审发布路径;替代路径或别名存储未覆盖时明确记录缺口。 |
| 初始化覆盖 | 指令宽度、去重区间、四段清零参数、直接存储与特殊默认值 | 独立复核员 | 从指令重新得到表 1 的覆盖;23 个残余位置保持未分类,未取得类型依据时不升级为字段或填充。 |
| 结论范围 | Server 2022 x64 样本、微软产品范围、开放规范与 FAQ | 主编 | 实现细节只绑定已测分支;其他产品依据微软范围行动;首个旧成员、消费者和利用原语继续标为未知。 |
该矩阵服务于报告复现。生产验收停留在受支持的包和主机边界,业务服务器不设置断点、不填充脏堆,也不操作内部功能门。完整保管链与排伪步骤放在第 7 章方法附录。
研究矩阵中的“通过”只授予与输入相称的结论。签名、清单、PE 结构和 PDB 键一致,证明分析对象身份可靠;调用与写入顺序一致,证明已审分支的对象生命周期;它们仍不能代替动态触发、其他架构或私有字段消费者证据。每个结论在记录中同时携带制品摘要、工具版本、测量脚本或命令、审查边和未覆盖路径。
负面对照用于阻止漂亮差分误导归因。去掉符号名后,候选函数仍需保留同一分配者、调用者、父级发布和状态机关系;换成同月其他初始化变化时,应失去这组关系。构建或架构不匹配、增量应用到错误基线、PDB 键冲突时,流程必须在解释机器指令前停止。
若以后增加受控动态佐证,输入应使用普通兼容客户端生成的成对样本:某数据族存在与缺席、合法边界值与无效计数、早期拒绝与完整会话、NLA 开启与关闭。记录每个样本到达的协议阶段、服务返回、事件、对象构造和清理路线。正向控制先证明固定系统仍接受合法会话,负向控制证明无效会话按协议拒绝;随后才观察不同输入是否改变已知对象路径。该设计衡量实现路线与回归行为,不生成利用包,也不把崩溃次数换算成可利用性。
5.2 车队矩阵验收受支持更新与业务路线
| 验收对象 | 采集输入 | 责任人 | 通过条件 |
|---|---|---|---|
| 代码激活 | 产品、edition、架构、包状态、完整构建、安装与启动时间 | 端点或服务器平台团队 | 适用 Vendor Fix 或受支持后继包完成,构建跨过本分支地板,当前启动晚于安装。 |
| 身份与入口 | 有效 NLA、策略来源、实际监听、Windows Firewall、上游规则、RD Gateway 与旁路 | 身份与网络团队 | 有效策略要求 NLA;只有批准来源可达;网关后端没有直连旁路;例外均有到期时间。 |
| 路线与业务 | 批准来源、禁止来源、无凭据客户端、真实客户端功能组合 | 应用所有者与运维 | 批准路线成功,禁止路线被阻断,无凭据连接在完整会话前遇到 NLA,必需通道和重定向按策略工作。 |
| 健康与历史 | RDS、Schannel、System、Application、WER、EDR、网关、防火墙、补丁前时间线 | SOC 与事件响应 | 观察窗口无新增相关故障;历史暴露结论写明覆盖期、发现、未知和下一动作;恢复路线可用。 |
仪表盘颜色必须能展开到原始值和采集时间。一次成功登录只覆盖允许路线;一次本机端口测试只覆盖本机视角。验收记录同时保存允许、拒绝、NLA、网关旁路和启动证据。
一个典型主机的验收从资产身份开始:管理平台显示包已完成,操作系统构建越过该分支地板,最后启动晚于安装。随后在主机上读取有效 NLA 及其策略来源,从批准跳板建立业务会话,从禁止来源确认阻断,再直接探测网关后端是否存在旁路。最后检查实际客户端所需的剪贴板、磁盘、打印、虚拟通道或多显示器功能,并观察 RDS、WER 与系统事件。每一步回答不同问题,前一步成功不会替后一项签字。
扫描器冲突也在车队矩阵中关闭。代理、网络扫描、云镜像检查和配置管理记录保留各自采集时间;当前构建、最后启动、监听路线和稳定资产标识负责归并。仍在等待重启的主机标为“待激活”,被旧镜像重新创建的实例回到“待修复”,入口例外超过到期时间则升级给责任人与风险所有者。
同一变更日可以产生四种不同动作:早上代理记录包已安装但启动时间仍旧,平台团队安排重启;随后网络扫描发现非 3389 监听,网络团队把它加入路线图;策略采集确认 NLA 生效,风险窗口相应收窄;网关后端直连测试若仍成功,入口任务继续开放。重启后构建越过地板、批准路线成功、禁止路线和后端旁路均被阻断,主机才进入健康观察。各条证据分别关闭代码、身份或路线字段。
责任分工随证据边界保持稳定:平台团队签包、构建和启动,身份团队签有效 NLA,网络团队签来源与旁路,应用所有者签真实功能,SOC 签观察窗口和历史结论。任何一方发现失败,只重开对应验收行和受其影响的下游结论。最终工单附上原始值、采集时间、责任人、例外到期与恢复入口,使下一次镜像恢复或策略漂移能够沿同一记录重新检查。
6 回滚、例外和历史结论共同决定能否关闭工单
6.1 升级失败与回滚都有明确安全状态
下载完成、安装登记、等待重启和固定代码运行是四个状态。前两项成功而重启未完成时,服务进程可能仍映射旧组件;平台看板应维持“待激活”。包失败、组件维护损坏或构建未跨过对应地板时,入口控制保持收紧并重新安排更新。
兼容问题需要保留客户端版本、选择的安全协议、虚拟通道、网关路线、事件与服务跟踪。回滚会恢复易受影响实现;回滚审批同时触发 NLA 强制、最小来源、监控、责任人、自动到期和受支持修复恢复计划。恢复准入使用第 5 章车队矩阵,不依赖一次临时登录成功。
回滚期间还要阻止风险通过自动化扩散。自动扩容组暂停使用旧模板,灾备演练禁用未修复副本,配置管理把被回退节点排除在普通合规绿灯之外。兼容问题的复现环境保留受影响客户端和路线,生产主机仅承担必要业务;修复验证成功后先更新源镜像,再逐一收回例外。
支持周期也进入关闭条件。Server 2012 / 2012 R2 的 ESU 资格即将于 2026 年 10 月结束,Windows 10 各分支的实际维护资格因 edition 与计划而异。没有受支持代码更新的资产以迁移、长期隔离或服务退役关闭,入口收口负责保护过渡期。
6.2 漏洞结论和事件结论分别签字
漏洞结论记录主机何时安装适用更新、何时完成重启、运行构建、有效 NLA 和允许来源。事件结论记录审查的补丁前区间、数据源、异常、已排除解释、无法观察的时间以及剩余响应动作。两份结论共享资产身份与时间线,分别回答未来是否修好和过去发生过什么。
一份合格的事件结论可以写成:“资产在 A 至 B 运行低于固定地板的构建;NLA 在 C 至 D 关闭;来源集合 E 在交集窗口可达;连接与主机数据覆盖 F;更早区间因保留期从 G 开始而不可观察。”这类记录让后续复核看见条件、时间、结果和空白。若出现未经授权的子进程、凭据访问、持久化或横向活动,案件随即升级为失陷响应并扩大隔离与猎捕范围。
持续控制沿用同一台账。快照恢复、镜像扩容、更新回滚、NLA 漂移或入口扩大都会重新打开结论。网关身份、防火墙流、RDP 与服务事件、WER、更新、启动和 EDR 上下文使用可连接的时钟;组织承诺的历史可见期不得超过最短关键数据源的保留期。
重开条件需要自动化到接近变更源的位置:镜像流水线检查最低构建,配置平台监控有效 NLA,网络策略审计比较批准来源,资产系统检测启动时间回退和新实例。告警携带旧结论 ID 与触发变化,避免重新创建一张失去历史的工单。责任人确认新状态后,重新执行受影响的验收行;无关字段沿用仍在有效期内的证据。
CVE-2026-56190 留下的工程纪律很朴素:原始存储分配、对象初始化、对外发布和消费者使用是四个独立边界。生产修复依赖微软受支持更新;研究结论依赖可复核制品;事件判断依赖本地证据。三者分别闭合以后,工单才有稳定终点。

7 方法附录:制品保管链与排伪条件
7.1 从 MSU 到函数身份只保留一条链
固定比较使用 Microsoft Update Catalog 提供的 Server 2022 x64 KB5094128 与 KB5099540。旧 MSU SHA-256 为 94949f1780466262096df4fe7f4343abc010caa71d378dd08ac28e9bc70238b,新 MSU 为 16b341f8a815acf7f94695f3afc1bccbd70f3ad934ddf7d7c224dd015fab5438。包内嵌套 CAB、组件清单和 PSF/PA30 增量只负责定位与重建目标组件。
MSU 是 Windows 独立更新容器;内部组件有时以 PSF/PA30 增量保存,必须结合预期基线重建。PE 是 Windows 可执行映像格式,CodeView 记录把映像连到相应 PDB;PDB 是微软符号文件,能恢复函数身份和部分类型关系。本文把这些缩写留在方法附录,它们只回答制品身份;RDP 对象的生命周期由后续调用与写入顺序说明。
PA30 差分片段需要预期基线才能生成完整 PE。重建后的两个 rdpserverbase.dll 同时通过文件版本、大小、节与目录、CodeView、微软 Authenticode 和包清单核对。旧文件大小 2,053,656 字节,新文件大小 2,053,616 字节;两者摘要已在早期响应块给出。
错误基线也可能生成能被反汇编器打开的文件。准入要求节大小、导入、重定位、异常目录、映像大小、文件版本、签名链、组件清单和 CodeView 相互一致。任何一项冲突都会让后续地址、函数配对和覆盖计算失去意义。
公共 PDB 的旧键为 BE0DCB802DC98FFC3E7F0B0ED21B561C1,新键为 510DA22952F32495CE9418F9B929F3131。PDB 提供函数身份和部分类型关系;机器指令提供分配大小、写入宽度、偏移和顺序。反编译器生成的局部变量名不进入产品事实。
Ghidra 12.1.2 在旧文件识别 4,360 个函数,在新文件识别 4,369 个;结构配对得到 2,823 个唯一精确对和 867 个高相似变化候选。候选数量只描述累积更新搜索空间。WDWNewShareClass 进入因果链,因为公共符号、调用者、分配、父级发布和新增构造同时符合微软 CWE-908 描述。
固定映像还把构造附近的 WIL 路径定位到 0x180133108 一带,并由公共符号关联 Feature_2152440120。这个坐标只用于复核七月 Server 2022 x64 样本中的维护实现。文章把构造先于发布视为已交付代码的观察事实;功能编号既不参与资产筛选,也不进入缓解或验收条件。官方包与运行构建才是生产控制面。
函数地址只用于重现固定映像,不能作为跨月检测签名。累积更新会移动布局、合并基本块或改变编译器安排。更稳定的复核单位是关系:同一连接调用者请求同尺寸对象,旧路径在有限写入后把对象交给父级,固定路径增加构造并在其后发布。地址变化而关系保留时,机制证据仍成立。
静态差分还受到编译器优化边界限制。内联、尾调用、常量传播和别名存储会让一项语义写入呈现为不同指令形态,因此覆盖统计按实际地址区间去重,并检查调用者与异常边。动态工具若以后用于验证,应从有效与无效连接的成对控制开始,记录进入的协议阶段和对象读写;单次崩溃、单次断点命中或某个内存模式都不能独立升级为触发器结论。
7.2 五个条件可以推翻或收窄重建
- 包摘要、产品或架构与固定输入不一致时,停止比较并重新取得制品。
- PE 签名、结构、CodeView 与 PDB 键任一冲突时,函数身份和地址失效。
- 去掉符号名后,变化例程若无法保持相同分配、调用者、父级发布和消费者关系,CVE 归因失效。
- 固定映像存在未审的发布替代路径、异常边或别名存储时,“构造先于发布”的结论只覆盖已审路径。
- 字段或消费者的公共类型证据出现后,23 个残余位置与首个旧值成员重新分类;当前版本保持未知。
本研究只做本地静态处理,没有开放 RDP 监听器,没有生成利用流量,也没有逐架构重复差分。微软产品范围支持全机群修补决定;精确对象大小、地址和写入方案只绑定 Server 2022 x64 样本。动态触发字段、首个私有消费者、写入目标、控制粒度和野外利用仍是公开证据缺口。
复现记录至少保存官方入口、查询时间、包与组件摘要、签名结果、CodeView/PDB 键、工具版本、函数地址、调用关系、写入区间和排伪结果。命令与逐制品收据放入稳定账本,正文只保留会改变机制或决策的结果。复核者从包身份开始,任何中间身份冲突都停止后续解释;全部身份一致后,再从调用者沿发布边读取固定路径。
搜索与实验缺口也据此固定。官方公告、实时 CVRF、适用更新页、更新目录、Server 2012 ESU 说明、RDP 开放规范、签名包、公共符号和本地静态差分已经覆盖产品范围、网络前提、制品身份、对象生命周期、修复顺序与运营动作。公开材料尚不能关闭私有成员语义、真实触发数据、动态可控性、其他架构实现同构性和历史利用五个问题。新增文字若不能改变这些边界、修复决定或验收动作,就不再进入正文。这套边界也为以后版本复核提供明确起点。
研究记录
8证据、对象与来源
下面保留本文实际使用的标识、时间和原始材料,便于继续调查。
8.1研究对象
报告涉及的产品、行为者、技术、受影响对象和控制点。
Windows Remote Desktop Protocol 远程代码执行
使用未初始化资源
无需账户即可进入受影响连接建立路径
公开符号:WDWConnect、WDWNewShareClass、ShareClass::ShareClass
旧样本在有限初始化后发布;固定样本在发布前增加系统初始化
23 个计数外字节位置尚无完整公共类型分类
8.2事件时间
- Server 2022 更新前基线
KB5094128 提供固定比较的旧制品。
- 微软发布安全更新
CVE-2026-56190 与产品 Vendor Fix 公开,CVRF 将映射更新标为需要重启。
- SOSEC 完成静态重建
更新包、签名 PE、公共 PDB 与对象生命周期完成固定复核。
- 实时修复映射与审计修订
重新读取微软 CVRF,Windows 11 26H1 的 x64 与 ARM64 均绑定 KB5101649 / 28000.2525,并收窄语义完备性结论。
8.3来源与材料
- Microsoft Security Response Center:CVE-2026-56190https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56190
- Microsoft 2026 年 7 月实时 CVRF 修复映射https://api.msrc.microsoft.com/cvrf/v3.0/cvrf/2026-Jul
- Windows 11 26H1 KB5101649,OS 构建 28000.2525https://support.microsoft.com/en-US/servicing/os/windows-11/2026/07/july-14-2026-kb5101649-os-build-28000-2525
- Windows Server 2022 KB5099540,OS 构建 20348.5386https://support.microsoft.com/en-US/servicing/os/windows-server/2026/07/july-14-2026-kb5099540-os-build-20348-5386
- Windows Server 2022 KB5094128,OS 构建 20348.5256https://support.microsoft.com/en-US/servicing/os/windows-server/2026/06/june-9-2026-kb5094128-os-build-20348-5256
- Microsoft Update Catalog:KB5099540https://catalog.update.microsoft.com/Search.aspx?q=KB5099540
- Microsoft Update Catalog:KB5094128https://catalog.update.microsoft.com/Search.aspx?q=KB5094128
- Microsoft Update Catalog:KB5101649https://catalog.update.microsoft.com/Search.aspx?q=KB5101649
- Microsoft:Windows Server 2012 / 2012 R2 ESUhttps://learn.microsoft.com/en-us/windows-server/get-started/extended-security-updates-overview
- MS-RDPBCGR:RDP 连接序列https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/023f1e69-cfe8-4ee6-9ee0-7e759fb4e4ee
- MS-RDPBCGR:X.224 Connection Request 处理https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/b88f4666-f1b8-4a22-bc41-a62721a6d97b
- MS-RDPBCGR:版本与能力协商https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/18bdcc20-2ca8-4520-9073-65e52a1c6733
- Microsoft:启用远程桌面与 NLA 建议https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/remotepc/remote-desktop-allow-access
- Microsoft:TerminalServer ADMX 与 NLA 策略https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-admx-terminalserver
- Microsoft:Windows Firewall 规则设计https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/rules
- 更新前 rdpserverbase.pdb 公共符号https://msdl.microsoft.com/download/symbols/rdpserverbase.pdb/BE0DCB802DC98FFC3E7F0B0ED21B561C1/rdpserverbase.pdb
- 修复后 rdpserverbase.pdb 公共符号https://msdl.microsoft.com/download/symbols/rdpserverbase.pdb/510DA22952F32495CE9418F9B929F3131/rdpserverbase.pdb
- NSA Ghidra 12.1.2 官方发布https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.2_build
- DeltaDownloader 1.1 官方发布https://github.com/Wack0/DeltaDownloader/releases/tag/v1.1