Text4Shell漏洞技术分析,交易所等机构需注意

  • 漏洞概述:Apache Commons Text(1.5至1.9版本)存在高危漏洞CVE-2022-42889(评分9.8),攻击者可通过构造恶意字符串(如${prefix:name}格式)实现远程代码执行(RCE)、文件读取、DNS探测或SSRF攻击,该漏洞被称为“Text4Shell”。

  • 技术细节

    • 漏洞触发:利用scriptdnsurl等插值前缀,通过StringSubstitutor.replace方法解析恶意输入,最终调用ScriptEngine.eval执行任意代码。
    • 利用场景
      • RCE${script:javascript:恶意代码}可执行系统命令。
      • 文件读取${file:UTF-8:/etc/passwd}读取服务器敏感文件。
      • 网络探测${dns:127.0.0.1|test.xxx}用于DNS查询,${url:http://内网IP:端口}探测内网服务。
  • 修复方案:升级至1.10.0版本,默认禁用危险插值器(如script),未匹配前缀时返回null

  • 影响范围:使用Apache Commons Text 1.5-1.9的Web3项目(如交易所),需紧急修复以避免资产损失。

  • 建议:项目方应立即升级组件,并监控异常插值操作,必要时联系安全团队(operation@numencyber.com)协助。

总结

Text4Shell漏洞技术分析,交易所等机构需注意

cve编号 / cve id

CVE-2022-42889

描述

Apache Commons Text支持执行变量插值,标准格式是“${prefix:name}”,其中“prefix”用于定位org.apache.commons.text.lookup.StringLookup的实例。从1.5版到1.9版,默认lookup实例集如:script使用JVM 脚本执行引擎javax.script执行表达式、 dns用于解析dns记录、url用于发起任意http请求。

如果使用了不受信任的配置值,则受影响的应用程序容易受到远程代码执行,该漏洞NVD评分为9.8。

Apache Commons Text作为Java语言的基础组件,其安全性需要各Web3项目方提高重视,及时关注各种Web3基础架构的安全漏洞并及时打好补丁,以避免潜在的安全风险和数字资产损失。我们将及时挖掘,追踪各种web3上的安全风险,以及提供领先的安全解决方案,确保web3世界链上,链下安全无虞。

受影响版本

>=1.5 <=1.9

分析

阅读官方1.9文档时,看到以下内容

Text4Shell漏洞技术分析,交易所等机构需注意

通过script插值执行javascript运算,得到结果:

Text4Shell漏洞技术分析,交易所等机构需注意

根据漏洞描述script使用 JVM 脚本执行引擎(javax.script),猜测StringSubstitutor.replace方法处理script插值时可能执行任意java代码。

Text4Shell漏洞技术分析,交易所等机构需注意

分析入口StringSubstitutor.replace,调用了substitute方法处理传入的字符串

Text4Shell漏洞技术分析,交易所等机构需注意

进行处理${}字符,取出再进行解析,跟入resolveVariable方法

Text4Shell漏洞技术分析,交易所等机构需注意

继续跟进StringLookup对象的lookup方法

Text4Shell漏洞技术分析,交易所等机构需注意

在stringLookupMap初始化了其他插值,插值对应不同lookup实例

Text4Shell漏洞技术分析,交易所等机构需注意

当前传入是script,lookup实例对应ScriptStringLookup类的lookup方法

Text4Shell漏洞技术分析,交易所等机构需注意

在该方法中,最终调用scriptEngine.eval触发漏洞。

Text4Shell漏洞技术分析,交易所等机构需注意

​调用堆

Text4Shell漏洞技术分析,交易所等机构需注意

修复

在1.10.0版本中stringLookupMap集合初始化时不再有script,lookup为null时,既没有找到对应实例。

Text4Shell漏洞技术分析,交易所等机构需注意

其他插值的利用

任意文件读取

​${file:UTF-8:/etc/passwd}

此时为lookup实例为FileStringLookup类

Text4Shell漏洞技术分析,交易所等机构需注意

lookup方法读取文件返回

Text4Shell漏洞技术分析,交易所等机构需注意

结果

Text4Shell漏洞技术分析,交易所等机构需注意

DNS探测

${dns:127.0.0.1|test.xxx.xxx}

用于无损检测

Text4Shell漏洞技术分析,交易所等机构需注意

HTTP 请求

可用于ssrf探测端口

Example: ${url:UTF-8:http://127.0.0.1:2121}

Text4Shell漏洞技术分析,交易所等机构需注意

总结

 

该漏洞payload看起来类似于log4shell,很容易被攻击者利用,有些人已经开始将其称为“Text4Shell”或“Act4Shell”。

建议各Web3项目方提高重视,及时升级到 Apache Commons Text 1.10.0,默认情况下禁用有问题的插值器,以避免潜在的安全风险和数字资产损失。如有任何疑问或技术交流,欢迎联系我们 operation@numencyber.com。

 

分享至:

作者:Numen Cyber

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:Numen Cyber如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
33分钟前
2小时前
2小时前
2小时前
3小时前
4小时前

热门文章

行业要闻
市场热点
精选读物

精选专题

App内阅读