Rapid7技术分析复盘:四个JWT校验缺陷如何串成一次远程认证绕过"

admin 2026-10-18 05:09:47 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

Rapid7技术分析复盘:四个JWT校验缺陷如何串成一次远程认证绕过

Ots安全

2026年8月13日 20:42
广东

在小说阅读器读本章

去阅读

威胁简报

恶意软件

漏洞攻击

一、这不是“又一个SharePoint漏洞”

2026年8月11日,Rapid7发布了对CVE-2026-55040的技术分析。该漏洞影响Microsoft SharePoint的JWT令牌验证流程,远程未认证攻击者可以绕过认证,在目标站点中冒充用户或管理员执行操作。

微软此前已在2026年7月的安全更新中修复该漏洞,并指出漏洞可能导致身份冒充、文件披露和数据修改,但不会直接影响系统可用性。2换句话说,攻击者未必能够通过这个漏洞立刻让服务器宕机,却可能在不具备合法凭据的情况下进入SharePoint的授权边界,读取敏感文档、篡改业务数据,或者将该漏洞作为后续攻击的跳板。

更值得关注的是公开时间差。Rapid7公开详细技术分析和PoC后,威胁情报公司Defused称已在其SharePoint蜜罐中观察到Rapid7 PoC被用于攻击。这不等同于微软已经确认全球范围内存在大规模在野利用,但已经足以说明:公开PoC会迅速改变漏洞风险等级,补丁状态必须从“计划修复”转为“立即核验”。

二、漏洞画像:一张表看清风险边界

项目 内容
漏洞编号 CVE-2026-55040
漏洞类型 JWT令牌验证链认证绕过、身份冒充
攻击位置 Microsoft SharePoint S2S Bearer令牌认证流程
远程利用 Rapid7分析称可由远程未认证攻击者触发
所需权限 不需要有效SharePoint账号
可能身份 SharePoint站点用户、管理员或特定服务身份
主要影响 文件披露、数据修改、身份冒充;微软称不影响系统可用性
公开状态 Rapid7已公开技术分析和PoC;Defused报告蜜罐中出现武器化使用
修复状态 微软已在2026年7月安全更新中修复,具体适用版本应以官方更新指南为准

这里有一个容易被忽略的判断:认证绕过与远程代码执行不是同一个概念。CVE-2026-55040本身的核心影响是“攻击者被当成了别人”,而不是漏洞直接执行任意系统命令。但在真实攻击链中,攻击者一旦能够以管理员身份访问SharePoint,就可能进一步利用站点功能、服务账户、文件内容或其他漏洞完成更严重的入侵。

三、SharePoint为什么使用嵌套JWT?

Rapid7的分析对象是SharePoint的服务到服务认证,也就是S2S认证。它使用一种嵌套的JWT结构:外层令牌携带用户身份声明,内层的actor token代表调用应用,并且理论上应当由受信任证书进行加密签名。

正常情况下,验证过程至少要回答四个问题:令牌是否被可信密钥签名;签名是否确实对应令牌内容;签发者是否属于允许的身份提供方;令牌声明的用户、受众和用途是否与当前请求匹配。

CVE-2026-55040的问题在于,这些检查并非全部由同一套严格的密码学逻辑完成,而是由SharePoint自定义代码、JWT库和证书解析流程共同承担。多个看似分散的校验缺口叠加后,攻击者可以构造一个“格式正确、身份声明可控、但没有真实签名”的令牌。

这类问题的危险性在于:单独看某一个检查,可能只是配置宽松或兼容性设计;但在完整认证链中,任何一个“默认信任”都可能成为下一步绕过的支点。

四、四个弱点如何串成一条绕过链

1. 外层令牌没有强制要求签名

Rapid7在反编译SharePoint代码后指出,令牌验证参数中将RequireSignedTokens设置为false。其直接后果是,外层JWT不再强制要求有效的密码学签名,验证库可能继续解析令牌并填充其中的声明。

从安全设计角度看,JWT的载荷内容是可读的,真正提供完整性和真实性的是签名。关闭“必须签名”检查,相当于允许攻击者先把用户身份、受众和其他声明写入令牌,再期待后续代码自行补救。只要后续补救不严密,攻击者就有机会将伪造身份送入授权流程。

2. actor token只解析证书指纹,不验证签名

在内层actor token中,SharePoint从JWT头部读取x5t证书指纹,并据此寻找签名证书。Rapid7指出,代码能够解析并绑定一个证书对象,却没有在这一阶段对actor token的签名执行真正的密码学验证。

这形成了一个典型的“密钥定位不等于签名验证”问题。系统知道攻击者声称使用哪张证书,却没有证明攻击者真的拥有对应私钥。若验证链只完成“找到证书”,没有完成“用证书验证签名”,证书就从安全凭据变成了一个可被引用的标签。

3. 未注册证书路径反而被接受

Rapid7进一步指出,issuer校验在查询不到匹配的已注册安全令牌服务时,可能直接接受该令牌,而不是拒绝请求。

这类逻辑在代码中往往表现为“找不到对象就返回”,但在安全认证场景中,找不到可信关系通常应当意味着拒绝,而不是放行。当攻击者能够让令牌引用SharePoint自身的服务证书,同时又进入“该证书不属于已注册服务”的分支时,issuer校验就失去了应有的约束作用。

4. GetTokenSignature只检查非空,不检查真假

最后,Rapid7分析称,GetTokenSignature方法只要求令牌存在非空签名字符串,却没有验证该字符串是否是由可信私钥生成的有效签名。

这一步把“存在签名字段”与“签名经过验证”混为一谈。对于安全令牌而言,字符串非空只能证明攻击者填写了内容,不能证明内容具备任何真实性。前面三个弱点已经为伪造令牌打开了通道,第四个弱点则让一个形式上存在的签名材料顺利通过后续处理。

五、攻击链的高层复盘:攻击者到底做了什么?

在不复述可直接利用的PoC代码和请求细节的前提下,公开分析可以抽象为以下流程:

阶段 攻击者动作 验证链缺口
第一步 访问SharePoint可公开访问的元数据接口,收集服务端令牌信息 关键认证元数据可被未认证获取
第二步 构造外层身份令牌,并取消对外层签名的强制要求 RequireSignedTokens 配置过于宽松
第三步 在actor token中引用目标SharePoint的服务证书 x5t 解析后没有完成签名验证
第四步 使用可控issuer和非空伪造签名通过后续检查 issuer和签名校验逻辑放行
第五步 将可控SID或UPN映射为SharePoint身份 身份声明进入授权上下文
第六步 以站点用户或管理员身份执行请求 认证边界被突破

这条链条的核心并不是“JWT容易伪造”,而是系统把多个本应相互独立的安全条件拆开后,却没有在最后形成强制性的密码学闭环。证书解析、issuer判断、签名字段存在性和用户身份映射分别看似合理,组合起来却没有回答最关键的问题:这个令牌是否由可信私钥对当前内容签发?

六、为什么公开PoC后风险迅速升级?

CVE-2026-55040在微软发布补丁后才出现完整公开分析,这种时间顺序很常见:厂商先修复,研究者再公开根因和验证工具。风险变化发生在PoC公开的瞬间,因为防守方和攻击者都获得了更清晰的漏洞触发条件。

Rapid7公开PoC后,Defused报告称其蜜罐已经观察到相关代码被用于攻击。2从情报研判角度,这至少说明攻击者正在关注该漏洞和公开工具;但蜜罐命中不能直接推导出所有真实生产环境都已遭受入侵,也不能替代组织内部日志和主机证据。

企业需要重点区分三个状态:一是“漏洞已修复”;二是“漏洞已被公开利用”;三是“本组织是否已经被攻击”。完成补丁安装只能解决第一问,不能自动回答第三问。尤其对互联网暴露的SharePoint,必须同时开展补丁验证、访问日志回溯、异常身份审计和关键文件完整性检查。

七、管理员现在应做什么?

先确认补丁真正落地

根据微软安全更新指南确认SharePoint产品线、累计更新和安全更新的适用关系,逐台核对版本与补丁状态。不要只依赖集中式软件清单,因为SharePoint场中的服务器、反向代理、Central Administration和数据库连接角色可能存在版本或配置差异。

补丁完成后应进行独立验证,包括重新扫描、确认组件版本、检查服务状态和验证外部暴露面。对于无法立即升级的系统,应记录业务负责人、临时隔离措施和最终修复期限,而不是简单标记为“风险接受”。

缩小互联网暴露面

CISA建议避免在没有必要时直接将SharePoint服务器暴露在互联网;应限制SharePoint Central Administration的外部访问,并只允许场与数据库之间进行必要通信。确实需要外部访问时,应将SharePoint置于Layer 7反向代理或具备应用层安全能力的控制设备之后。

这类措施并不能修复CVE-2026-55040,但可以减少攻击者直接接触认证入口的机会,降低自动化扫描、PoC批量尝试和后续身份冒充的成功率。

检查异常身份和敏感操作

防守方应重点审计匿名请求、异常Bearer令牌、短时间内出现的大量站点访问、管理员身份执行的非典型文件读取和修改操作,以及来自异常源地址的Central Administration访问。

如果日志系统能够记录JWT验证失败原因、issuer、actor token相关字段和最终映射身份,应将其纳入集中分析。对管理员账号尤其要关注登录地点、访问时间、操作对象和历史行为是否一致。

发现可疑迹象时按入侵事件处理

若在补丁前后发现异常管理员身份、批量文件读取、关键页面修改、可疑上传或异常配置变更,不应仅执行补丁后关闭工单。建议先保留IIS日志、SharePoint ULS日志、反向代理日志、身份认证日志、数据库审计记录和主机时间线,再进行隔离和凭据轮换。

如果攻击者已经通过认证绕过获得管理员级站点权限,补丁只能阻止继续利用,不能自动撤销已经创建的持久化、植入的文件、修改的权限和被读取的数据。事件响应必须覆盖账号、站点、服务器和相关密钥材料。

八、最终判断:这是“认证设计缺陷”,不是简单配置错误

CVE-2026-55040给出的安全启示非常明确:在身份认证系统中,“签名字段存在”“证书能够解析”“issuer格式正确”和“用户声明可映射”都不等于身份可信。真正可靠的认证必须将令牌内容、签发者、受众、时间窗口和密码学签名绑定在同一个不可绕过的验证流程里。

Rapid7的分析将漏洞拆成四个弱点,帮助我们看到问题的本质:单点缺陷未必足以造成完全绕过,但多个宽松判断组合后,最终会把未认证请求送入已认证的授权上下文。

对于仍在运行的SharePoint管理员,当前最重要的动作不是等待更多媒体报道,而是完成三件事:确认2026年7月安全更新已经正确安装;缩小SharePoint尤其是管理面板的互联网暴露;回溯补丁发布以来的异常Bearer访问和管理员操作。

POC:https://github.com/sfewer-r7/CVE-2026-55040

一句话总结: CVE-2026-55040打穿的不是某一个页面,而是SharePoint对“谁有资格代表谁发言”的判断链;修复漏洞只是第一步,证明系统没有被冒用,才是完整处置的终点。

END

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

排版 编辑 | Ots 小安

采集 翻译 | Ots Ai牛马

公众号 | AnQuan7 (Ots安全)


Rapid7技术分析复盘:四个JWT校验缺陷如何串成一次远程认证绕过" 网络安全文章

Rapid7技术分析复盘:四个JWT校验缺陷如何串成一次远程认证绕过"

CVE-2026-55040是MicrosoftSharePointJWT令牌验证链中的认证绕过漏洞,由四个校验缺陷组合导致:外层令牌未强制签名、内层令牌仅解析证书指纹未验证签名、未注册证书路径被接受、签名仅检查非空。远程未认证攻击者可利用此链冒充用户或管理员,导致文件披露和数据修改。公开PoC后风险迅速升级,管理员应立即安装2026年7月安全更新、缩小互联网暴露面并审计异常身份操作。
美国允许私营企业开展官方进攻性网络行动" 网络安全文章

美国允许私营企业开展官方进攻性网络行动"

美国白宫发布总统备忘录,授权国土安全部建立新项目,允许私营企业在政府监督下对境外网络犯罪组织实施进攻性网络行动。项目由司法部和国土安全部双重监督,企业需通过背景审查并缴纳100万美元保证金。行动禁止造成人员伤亡或武装冲突,误伤美国系统需立即上报。该政策旨在利用私营企业技术能力打击跨国网络犯罪。
区块链中解密出一个木马IP地址" 网络安全文章

区块链中解密出一个木马IP地址"

本文披露名为NullReceiver的npm供应链攻击。攻击者通过仿冒前端UI包,在运行时查询以太坊钱包的零金额空转账,将收款地址解码为C2的IP。该方法无需智能合约,以收款地址作一次性编码容器,极难指纹识别。建议审查依赖锁文件,监控Node进程异常访问以太坊RPC行为,失陷后须隔离主机并轮换凭据重建环境。
评论:0   参与:  0