我们的 AI 引擎 Neutron 在加州大学伯克利分校的 CyberGym 基准测试中取得了 96.75% 的成绩。 了解更多

安全

安全

移动应用中的 Text4Shell(CVE-2022-42889)……我需要担心吗?

CVE-2022-42889 是 Apache Commons Text 库中的一个漏洞,由字符串插值滥用功能强大的处理器所致,存在于 Amazon Shopping、Udemy 和 Grammarly 等热门应用中。本文探讨该漏洞对移动应用的适用性和风险。

CVE-2022-42889 是 Apache Commons Text 库中的一个漏洞,由字符串插值滥用功能强大的处理器所致, 可导致远程代码执行。

该漏洞被称为 Text4Shell,在 1.10 版本发布之前,它已经等待修复长达七个月 。

对于移动应用而言,Apache Commons Text 库是一个相对流行的库,存在于许多热门 应用中,例如:

  • Mi Music,下载量超过十亿次。
  • Amazon shopping,下载量超过五亿次。
  • Flo Ovulation、LG ThinQ、Fitbit、UMANG、Mi Home、Webnovel、Grammarly Keyboard、Udemy,下载量均达数千万次。

从技术上讲,该漏洞源于插值处理器的使用,这些处理器能够执行脚本、 解析 DNS 查询、读取文件、解析并访问 XML、读取 Java 常量或发起 URL 请求。

以下是利用 script 处理器的示例:

String poc1 = “${script:javascript:java.lang.Runtime.getRuntime().exec(\”touch /tmp/tarlogic\”);}”;
String rce1 = StringSubstitutor.createInterpolator().replace(poc1);
String poc2 = “script:javascript:java.lang.Runtime.getRuntime().exec(\”touch /tmp/tarlogic\”)”;
String rce2 = StringLookupFactory.INSTANCE.interpolatorStringLookup().lookup(poc2);

该漏洞可追溯到两个支持插值的类:StringSubstitutor 和 StringLookupFactory。

1.10 版本中引入的修复从默认配置中移除了脚本、URL 和 DNS 处理器。

* 修复:https://github.com/apache/commons-text/commit/b9b40b903e2d1f9935039803c9852439576780ea

但它保留了文件内容、环境变量和 XML 路径等其他处理器,这些处理器仍可能被滥用来访问密钥、密码或源代码等 敏感信息。

对使用该漏洞库的移动应用进行分析后发现,由于受影响的 API 很少被使用, 这些应用存在漏洞的可能性较低。

例如,在包含该依赖的应用中搜索 StringLookupFactory 类,得到的 结果寥寥无几。对于匹配到的结果,其方法调用栈也并未表明会接触到危险输入。

替代文本
ostorlab 截图

在审查的 50 多个包含 Apache Commons Text 的应用中,我们发现有一个使用了 StringLookupFactory , 其余应用使用的都是该库中不存在漏洞的 API。

不过,仅凭名称搜索该库是不够的,因为在一些情况下该库经过了混淆,原始 类名已被移除。下面以 Udemy 应用为例。

替代文本
ostorlab 截图

替代文本
ostorlab 截图

总体而言,我们的分析表明存在漏洞的可能性较低。如果您拥有一款移动应用:

  • 您可以查看扫描报告中的指纹(fingerprint)部分,确认您的应用中是否包含该库。

替代文本
ostorlab 截图

  • 使用分析环境检查存在漏洞的类的使用情况,但别忘了检查是否存在 代码混淆。
  • 当前实施的修复只消除了远程代码执行的风险。仍然可以读取文件 内容、访问环境变量或读取 java 常量。因此,建议将这些处理器从已启用的处理器 列表中移除。

标签:

mobile, web, rce