在过去的几天里,Apache Commons Text 库中一个名为 Text4Shell 的新漏洞引起很大的轰动,该漏洞存在于 Apache Commons Text 1.5到1.9版本中。此警报于10月18日发布,此前检测到大量试图利用 CVE-2022-42889 安全漏洞的攻击尝试,该漏洞通过 StringSubstitutor API 实现远程代码执行,其CVSSv3 评分高达9.8分(满分10分)。为避免该漏洞关联的风险,企业需要使用可用的最新版本 Apache Commons Text 1.10.0,默认情况下禁用脚本插值。

Log4Shell 卷土重来了吗?

Text4Shell 之所以受到诸多关注是因为其名称与去年可怕的 Log4Shell 漏洞十分相似。Log4Shell 和 Text4Shell 都是在 java 开源项目中发现的。Text4Shell 漏洞的攻击方式是恶意攻击者通过利用漏洞,来使用专门为攻击设计的有效负载在易受攻击的应用程序中成功反向打开 shell,攻击者还可以通过 StringSubstitutor API 实现远程执行代码。

但是,StringSubstitution 不像 Log4j 那么普遍,目前有 2591个项目使用受影响的 Apache Commons Text 库版本。这样看来,使用 Substitution 方法并且不清理不受信任的输入的项目并不多。同时为了让 Text4Shell 可被利用,必须要设置多个先决条件。加上没有清理输入的字符串替换方法并不是很常见的做法,可以说 Text4Shell 的风险比 Log4Shell 漏洞中的 Log4j 低得多。

开发人员在写代码时出现失误很正常的事情,也是意料之中的事,而在开源生态中,许多开源维护者和贡献者并不是专业的开发人员,因此错误难以避免。Text4Shell 给大多数公司带来的最大问题就是调查和补救漏洞所需要耗费的时间,因为大多数组织缺乏工具和技术来快速发现这种依赖关系的使用情况。在这个层面上,Text4Shell 和 Log4Shell 的比较是比较恰当的。要知道,美国安全审查委员会关于 Log4Shell 的最新报告指出美国政府共计投入了33000个小时来调查和响应 Log4Shell 漏洞!

虽然开源维护者也正在努力减少失误出现,但开源软件的最终用户始终需要投资于依赖软件生命周期管理解决方案,来帮助他们选择安全适当的依赖关系并给予有效保护。同时通过提高自动化程度,为快速调查和以高水平响应此类事件做好准备。

依赖项中的依赖关系

受影响依赖项的模糊性是关键挑战。开源组件中的漏洞的普遍难题和挑战是,大多数漏洞不会影响软件开发人员直接使用的组件(也就是依赖项)。取而代之的是,这些漏洞会影响开发人员使用的依赖项的依赖关系,这也使得开发人员很难评估漏洞对于其开发的软件是否真的很重要。在 Log4Shell 的案例中,Log4j 的流行是漏洞威胁的重要核心,可怕的是你可以在任何地方找到它。

更重要的是,Log4Shell 漏洞可能会影响为直接暴露于 Internet 的系统,攻击者可以将触发漏洞的恶意字符串或文本提交到一个系统,然后通过不同的数据库和系统传播,直到漏洞利用组织网络深处易受攻击的系统。Log4j 揭示了一个非常严峻的问题,即响应广泛存在的漏洞的费用通常比漏洞本身影响更大。

安全检查刻不容缓

在近期的一篇博客文章中(见参考链接2)指出,平均每个企业都有超过40000个由开发人员直接下载的开源依赖项,而每个依赖项平均会带来77个其他的依赖项!这就会导致大规模且无法控制的依赖蔓延,同时也潜在地增加了企业攻击面。更重要也更令人担忧的是,企业中的安全团队通常对代码的使用位置和方式了解甚少,因此当漏洞被披露的时候,确定企业使用受到影响就像大海捞针一样难。

因此建议企业在应对此类问题的时候,可以尝试执行静态代码分析(SAST),以检查是否可以在特定软件的上下文中触发某些开源组件中包含的易受攻击的代码,不论这些易受攻击的组件在错综复杂的依赖关系中藏的多隐秘。

参考链接:

  1. https://securityboulevard.com/2022/10/log4shell-spring4shell-and-now-text4shell/

  2. https://www.endorlabs.com/blog/story-of-endorlabs

漏洞评分高达9.8分!Text4Shell 会是下一个 Log4Shell吗?的更多相关文章

  1. 笔记︱金融风险控制基础常识——巴塞尔协议+信用评分卡Fico信用分

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...

  2. 微信小程序 - 五星评分(含半分)

    转载自:http://blog.csdn.net/column/details/13721.html     演示:     下载:小程序-星级评论.zip  

  3. 漏洞经验分享丨Java审计之XXE(下)

    上篇内容我们介绍了XXE的基础概念和审计函数的相关内容,今天我们将继续分享Blind XXE与OOB-XXE的知识点以及XXE防御方法,希望对大家的学习有所帮助! 上期回顾  ◀漏洞经验分享丨Java ...

  4. js解决千分符问题[收藏下]

    //js数字千分符处理 function commafy(num) { num = num + ""; var re = /(-?\d+)(\d{3})/ while (re.te ...

  5. hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others)     ...

  6. 分库分表的情况下生成全局唯一的ID

    分库分表情况下 跨库的问题怎么解决? 分布式事务怎么解决? 查询结果集集合合并的问题? 全局唯一的id怎么解决? 一般要求:1.保证生成的ID全局唯一,不可重复 2.生成的后一个Id必须大于前一个Id ...

  7. PHP获取指定分钟数的下一个整数倍

    2019-6-11 11:51:03 星期二 情景: 要定时发送邮件, 邮件数据入表时就记录下其待发送时间, 然后crontab是每分钟扫描邮件表, 找出当时那一分钟需要发送的邮件 举例: 假如有一种 ...

  8. WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  9. Web漏洞总结: OWASP Top 10

    本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 开发安全 - OWASP Top 10 在学习安全需要总体了解安全趋势和常见的Web漏洞,首推了解OWASP,因为它代表着业 ...

  10. 精通C#(第6版)

    <精通C#(第6版)> 基本信息 原书名:Pro C# 5.0 and the .NET 4.5 framework,sixth edition 作者: (美)Andrew Troelse ...

随机推荐

  1. .Net中的内存泄露

    .Net中的内存泄露 说明: 虽然已经有GC垃圾回收器在工作,但是还是会出现内存泄露. 内存碎片 费托管内存泄露比托管内存泄露更加严重.GC可以移动托管内存,为其他对象腾空间.但是非托管内存将永远的卡 ...

  2. 不可复制的PDF转成双层可复制PDF

    有些PDF是通过扫描或者虚拟打印机生成的,这些PDF不可复制里边的内容 市面上的工具一般都是收费或者有水印,所以就萌生了自己搞一个的想法: 使用了以下三个开源库 PdfiumViewer PDF预览及 ...

  3. 【pwn】[MoeCTF 2022]babyfmt --格式化字符串漏洞,got表劫持

    拿到程序,先checksec一下 发现是Partial RELRO,got表可修改 当RELRO保护为NO RELRO的时候,init.array.fini.array.got.plt均可读可写:为P ...

  4. Docker安装与教程-Centos7(一)

    复现漏洞时,经常要复现环境,VMware还原太过麻烦,所以学习docker的基本操作也是必要的 Docker三要素-镜像.容器.仓库 操作系统:Centos7 官方教程文档 1.Docker的安装与卸 ...

  5. 微信小程序直播接入指南

    微信小程序直播接入指南 小程序直播组件接入指引 一.简介 小程序直播,是微信提供给小程序开发者的直播组件.通过调用该组件,商家可以在小程序中实现直播功能. 按下面的使用说明接入,在你的小程序中引入直播 ...

  6. QT实战 之翻金币游戏

    QT实战 之翻金币游戏 相较于原版的优化: 关卡数据不是用静态的config配置,而是动态生成,每次打开的关卡都生成不同的游戏数据,增加了可玩性: 关卡数据依据关卡等级的不同而生成不同难度的数据,随关 ...

  7. 关于如何来测一款app的思考

    最近工作当中需要整体测一遍app,需要全方面思考并且尽可能覆盖所有待测点,因为整理总结了这篇关于app测试的总体大纲 一.功能测试 1.1界面测试 1.1.1导航测试 ---是否易于导航.导航是否直观 ...

  8. CoreFlex框架发布 `0.1.1`

    CoreFlex框架发布 0.1.1 框架描述 CoreFlex是一个支持.NET 6,.NET 7,.NET 8的快速开发框架,也提供MasaFramework相关框架的集成提供更多功能模块, 集成 ...

  9. MySQL 分组排序后 → 如何取前N条或倒数N条

    开心一刻 晚上,老婆辅导女儿写语文作业 填空题:春天来了,__绿了 女儿:春天来了,爸爸绿了 老婆一脸不悦地问道:你再说一遍,春天来了,什么玩意绿了? 女儿:春天来了,爸爸绿了呀 老婆很生气,但依旧温 ...

  10. [ABC268G] Random Student ID

    Problem Statement Takahashi Elementary School has $N$ new students. For $i = 1, 2, \ldots, N$, the n ...