漏洞评分高达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 ...
随机推荐
- WebSocket connection to 'ws://127.0.0.1:8089/websocket/0,1,10,admin' failed:
WebSocket连接失败 背景: 相同项目数据库从mysql变更到sqlite,代码层面基本没有变更,但是WebSocket连接失败,查找多方原因,未找到问题,最后发现新项目JDK为OpenJDK, ...
- 一、docker的安装及docker-compose安装
一. 安装docker 1.1安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # https://get.d ...
- 使用openpyxl库读取Excel文件数据
在Python中,我们经常需要读取和处理Excel文件中的数据.openpyxl是一个功能强大的库,可以轻松地实现Excel文件的读写操作.本文将介绍如何使用openpyxl库读取Excel文件中的数 ...
- Ynoi 题目总结:
Preview: 因为是关于 \(\text{Ynoi}\) 的题目总结,所以自然也要像 \(\text{Ynoi}\) 一样来一段长长的开头. 这是一个蒟蒻的告白 高一上半学期,嘻嘻哈哈的糊弄过去了 ...
- 你真的了解@Async吗?
使用场景: 开发中会碰到一些耗时较长或者不需要立即得到执行结果的逻辑,比如消息推送.商品同步等都可以使用异步方法,这时我们可以用到@Async.但是直接使用 @Async 会有风险,当我们没有指定线程 ...
- C语言输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数。
#include<stdio.h> void main() { char c; int letter = 0, space = 0, digit = 0, other = 0; print ...
- Go语言数组与切片学习总结
一.数组 数组的定义:相同类型的数据集合 go语言中数组的索引从0开始 没有赋值的数值型数组,默认值为0 数组一旦被创建,它的大小就是不可改变的 (1)声明数组与打印 var 变量名 [大小]变量类型 ...
- mysql的用户管理和权限控制
1.创建用户用 create user '用户名' @ 'localhost' identified by '密码'; 这串代码是创建当地用,是这台电脑的用户,因为有个localhost: creat ...
- 关于C#接口的用法详细解答,附上案例说明!
接口 C#中的接口是一种定义了一组方法.属性和事件的类型.它只包含成员的声明,而不包含任何实现.接口可以被类通过实现的方式使用,从而使类能够具有接口定义的行为. 接口在C#中被定义为使用interfa ...
- 11 HTTP的特点,优点和缺点
[toc] # HTTP的五大特点 # HTTP的优点 1. 最大的优点:简单.灵活和易于拓展 2. 拥有成熟的软硬件环境,应用的非常广泛,是互联网的基础设施 3. 是无状态的,可以轻松实现集群化, ...