CNTA-2019-0014 wls9-async 反序列化 rce 分析
字数 1511 2025-08-29 08:32:18

WebLogic wls9-async 反序列化漏洞分析报告 (CNTA-2019-0014)

漏洞概述

  • 漏洞编号: CNTA-2019-0014
  • 影响组件: WebLogic wls9_async_response 包
  • 漏洞类型: XML反序列化远程代码执行(RCE)
  • 测试版本: WebLogic 10.3.6 (高版本如12.2.1.2默认不部署该war包)
  • 漏洞位置: /_async/ 路径下的异步响应处理

漏洞背景

该漏洞是WebLogic中一个典型的XML反序列化漏洞,与2017年出现的类似漏洞属于同一类型。漏洞存在于wls9_async_response组件的处理流程中,攻击者可以通过构造恶意的SOAP请求触发XMLDecoder反序列化,最终导致远程代码执行。

技术分析

1. 漏洞入口点

漏洞的入口位于WebLogic的异步响应处理组件中,具体路径为/_async/,对应的处理类为AsyncResponseBean。然而,直接分析该类发现只有handleFaulthandleResult两个方法,并非直接漏洞触发点。

2. 请求处理流程

完整的漏洞触发调用链如下:

BaseWSServlet#service
  -> SoapProcessor#process
    -> ServerDispatcher#dispatch
      -> HandlerIterator#handleRequest
        -> WorkAreaServerHandler#handleRequest
          -> WorkContextMapInterceptor#receiveRequest
            -> WorkContextXmlInputAdapter#readUTF
              -> XMLDecoder#readObject

3. 关键分析点

3.1 责任链模式处理

WebLogic使用责任链模式处理SOAP请求,包含21个Handler:

  1. 请求首先由BaseWSServlet接收
  2. 通过SoapProcessor处理
  3. ServerDispatcher分发
  4. HandlerIterator中遍历21个Handler进行处理

3.2 关键Handler分析

在21个Handler中,WorkAreaServerHandler是关键漏洞触发点:

  1. 从SOAP Header中获取workarea相关内容
  2. 将内容送入WorkContextXmlInputAdapter进行初始化处理
  3. 调用receiveRequest函数

3.3 反序列化触发点

最终的反序列化发生在以下路径:

  1. WorkContextMapInterceptor#receiveRequest调用readEntry
  2. readEntry调用WorkContextXmlInputAdapter#readUTF
  3. readUTF中直接调用XMLDecoder#readObject进行反序列化

4. 漏洞利用条件

  1. 目标系统部署了wls9_async_response组件
  2. 攻击者能够发送特制的SOAP请求到WebLogic服务器
  3. 请求中包含恶意的序列化XML数据

漏洞验证

在WebLogic 10.3.6环境中,通过构造特定的POC可以触发该漏洞,导致任意代码执行。

防护建议

  1. 升级补丁: 应用Oracle官方发布的安全补丁
  2. 组件移除: 对于不需要的组件,可以移除wls9_async_response.war
  3. 访问控制: 限制对/_async/路径的访问
  4. 输入验证: 对SOAP请求中的XML内容进行严格验证

技术细节补充

  1. 该漏洞利用的是Java XMLDecoder的反序列化问题
  2. 高版本WebLogic(如12.2.1.2)默认不部署该war包,降低了风险
  3. 漏洞利用需要构造特定的SOAP Header,包含恶意的workarea内容

总结

CNTA-2019-0014漏洞是WebLogic中一个典型的XML反序列化漏洞,通过精心构造的SOAP请求可以触发远程代码执行。理解其完整的调用链和触发条件对于防御此类漏洞具有重要意义。管理员应及时应用补丁或移除不必要的组件来降低风险。

WebLogic wls9-async 反序列化漏洞分析报告 (CNTA-2019-0014) 漏洞概述 漏洞编号 : CNTA-2019-0014 影响组件 : WebLogic wls9_ async_ response 包 漏洞类型 : XML反序列化远程代码执行(RCE) 测试版本 : WebLogic 10.3.6 (高版本如12.2.1.2默认不部署该war包) 漏洞位置 : /_async/ 路径下的异步响应处理 漏洞背景 该漏洞是WebLogic中一个典型的XML反序列化漏洞,与2017年出现的类似漏洞属于同一类型。漏洞存在于wls9_ async_ response组件的处理流程中,攻击者可以通过构造恶意的SOAP请求触发XMLDecoder反序列化,最终导致远程代码执行。 技术分析 1. 漏洞入口点 漏洞的入口位于WebLogic的异步响应处理组件中,具体路径为 /_async/ ,对应的处理类为 AsyncResponseBean 。然而,直接分析该类发现只有 handleFault 和 handleResult 两个方法,并非直接漏洞触发点。 2. 请求处理流程 完整的漏洞触发调用链如下: 3. 关键分析点 3.1 责任链模式处理 WebLogic使用责任链模式处理SOAP请求,包含21个Handler: 请求首先由 BaseWSServlet 接收 通过 SoapProcessor 处理 由 ServerDispatcher 分发 在 HandlerIterator 中遍历21个Handler进行处理 3.2 关键Handler分析 在21个Handler中, WorkAreaServerHandler 是关键漏洞触发点: 从SOAP Header中获取 workarea 相关内容 将内容送入 WorkContextXmlInputAdapter 进行初始化处理 调用 receiveRequest 函数 3.3 反序列化触发点 最终的反序列化发生在以下路径: WorkContextMapInterceptor#receiveRequest 调用 readEntry readEntry 调用 WorkContextXmlInputAdapter#readUTF readUTF 中直接调用 XMLDecoder#readObject 进行反序列化 4. 漏洞利用条件 目标系统部署了wls9_ async_ response组件 攻击者能够发送特制的SOAP请求到WebLogic服务器 请求中包含恶意的序列化XML数据 漏洞验证 在WebLogic 10.3.6环境中,通过构造特定的POC可以触发该漏洞,导致任意代码执行。 防护建议 升级补丁 : 应用Oracle官方发布的安全补丁 组件移除 : 对于不需要的组件,可以移除wls9_ async_ response.war 访问控制 : 限制对/_ async/路径的访问 输入验证 : 对SOAP请求中的XML内容进行严格验证 技术细节补充 该漏洞利用的是Java XMLDecoder的反序列化问题 高版本WebLogic(如12.2.1.2)默认不部署该war包,降低了风险 漏洞利用需要构造特定的SOAP Header,包含恶意的workarea内容 总结 CNTA-2019-0014漏洞是WebLogic中一个典型的XML反序列化漏洞,通过精心构造的SOAP请求可以触发远程代码执行。理解其完整的调用链和触发条件对于防御此类漏洞具有重要意义。管理员应及时应用补丁或移除不必要的组件来降低风险。