漏洞评分高达9.8分!Text4Shell 会是下一个 Log4Shell吗?
在过去的几天里,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),以检查是否可以在特定软件的上下文中触发某些开源组件中包含的易受攻击的代码,不论这些易受攻击的组件在错综复杂的依赖关系中藏的多隐秘。
参考链接:
漏洞评分高达9.8分!Text4Shell 会是下一个 Log4Shell吗?的更多相关文章
- 笔记︱金融风险控制基础常识——巴塞尔协议+信用评分卡Fico信用分
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...
- 微信小程序 - 五星评分(含半分)
转载自:http://blog.csdn.net/column/details/13721.html 演示: 下载:小程序-星级评论.zip
- 漏洞经验分享丨Java审计之XXE(下)
上篇内容我们介绍了XXE的基础概念和审计函数的相关内容,今天我们将继续分享Blind XXE与OOB-XXE的知识点以及XXE防御方法,希望对大家的学习有所帮助! 上期回顾 ◀漏洞经验分享丨Java ...
- js解决千分符问题[收藏下]
//js数字千分符处理 function commafy(num) { num = num + ""; var re = /(-?\d+)(\d{3})/ while (re.te ...
- hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others) ...
- 分库分表的情况下生成全局唯一的ID
分库分表情况下 跨库的问题怎么解决? 分布式事务怎么解决? 查询结果集集合合并的问题? 全局唯一的id怎么解决? 一般要求:1.保证生成的ID全局唯一,不可重复 2.生成的后一个Id必须大于前一个Id ...
- PHP获取指定分钟数的下一个整数倍
2019-6-11 11:51:03 星期二 情景: 要定时发送邮件, 邮件数据入表时就记录下其待发送时间, 然后crontab是每分钟扫描邮件表, 找出当时那一分钟需要发送的邮件 举例: 假如有一种 ...
- WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)
0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...
- Web漏洞总结: OWASP Top 10
本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 开发安全 - OWASP Top 10 在学习安全需要总体了解安全趋势和常见的Web漏洞,首推了解OWASP,因为它代表着业 ...
- 精通C#(第6版)
<精通C#(第6版)> 基本信息 原书名:Pro C# 5.0 and the .NET 4.5 framework,sixth edition 作者: (美)Andrew Troelse ...
随机推荐
- helm仓库harbor搭建及上传helm
1.仓库搭建(harbor) 注意: 基础环境为docker 使用docker-compose安装 1.1.docker安装 # 安装需要的软件包 # yum-util 提供yum-config-ma ...
- Docker学习资料集(从入门到实践)
前言 昨天分享了一篇介绍Docker可视化管理工具的文章,然后在公众号后台收到了挺多同学的私信问:学习Docker有好的资料值得推荐的吗?想要学习Docker但是无从下手.其实之前我有断断续续的分享过 ...
- 快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLab
Walrus 是一款基于平台工程理念的开源应用管理平台,致力于解决应用交付领域的深切痛点.借助 Walrus 将云原生的能力和最佳实践扩展到非容器化环境,并支持任意应用形态统一编排部署,降低使用基础设 ...
- 数据结构与算法 | 动态规划算法(Dynamic Programming)
上一篇文末已经提到了记忆化搜索是动态规划(Dynamic Programming)的一种形式,是一种自顶向下(Top-Down)的思考方式,通常采用递归的编码形式:既然动态规划有自顶向下(Top-Do ...
- (Good topic)压缩字符串 (3.16 leetcode每日打卡)
字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若"压缩"后的字符串没有变短,则返回原先的字符 ...
- 在NET8中使用简化的 AddJwtBearer 认证
开发环境 系统版本: win10 .NET SDK: NET8 开发工具:vscode 参考引用:使用 dotnet user-jwts 管理开发中的 JSON Web 令牌 注意:以下示例中的端口. ...
- chatgpt接口开发笔记3: 语音识别接口
chatgpt接口开发笔记3: 语音识别接口 1.文本转语音 1.了解接口参数 接口地址: POST https://api.openai.com/v1/audio/speech 下面是接口文档描述内 ...
- [CF1264D]Beautiful Bracket Sequence
题目描述 This is the hard version of this problem. The only difference is the limit of $ n $ - the lengt ...
- Django学习(三) 之 模板中标签的使用
写在前面 最近看到稀土掘金在搞2023年终总结征文活动,一直想尝试投稿试试,周末我就花了近一下午时间写完初稿,然后周一.周二完成精读再改稿,感觉OK,昨晚凌晨第一时间在稀土掘金投稿. 结果,又发生了同 ...
- springMvc报错
这个报错困扰了我大概一天,主要是刚开始没抓到主要原因,是因为自己的项目结构出现了问题, 导致找不到应有的东西,另一方面就是maven的问题,将maven解决后这个就能用了. 具体解决在https:// ...