Fastjson严重漏洞:攻击可致业务瘫痪及修复建议

0 下载量 173 浏览量 更新于2024-08-29 收藏 384KB PDF 举报
"fastjson是一个Java语言编写的高性能功能完备的JSON库,被广泛应用于各种Java应用程序中。然而,它在2019年9月3日被发现存在一个重大安全漏洞,该漏洞可能导致攻击者通过构造特殊的JSON字符串,使得目标系统出现内存耗尽(Out-of-Memory,简称OOM)的情况,进而造成服务瘫痪。360-CERT发布了关于此漏洞的报告,编号为B6-2019-090501,建议所有使用fastjson的用户尽快检查并修复此问题。" 快JSON(fastjson)是阿里巴巴开发的一个高效、全面的JSON库,用于Java应用中的JSON序列化和反序列化。然而,在2019年9月3日,360网络安全应急响应中心(360-CERT)披露了一个关于fastjson的重大安全漏洞。这个漏洞发生在JSONLexerBase类的scanString方法中,当解析包含特定\x转义字符序列的JSON字符串时,fastjson的处理方式可能导致内存异常增长,最终触发OOM错误。 漏洞的根源在于,当fastjson遇到以\x开头的字符序列时,它期望读取接下来的两个字符作为十六进制数字,并将它们转换为对应的Unicode字符。但是,如果JSON字符串以\x结尾,fastjson没有进行有效的边界检查,导致无限循环地尝试获取不存在的后续字符,每次循环都会消耗额外的内存。当恶意攻击者构造大量这样的请求时,服务器可能会因内存耗尽而崩溃,严重影响业务的正常运行。 360-CERT评估该漏洞的影响级别为中等,但考虑到其可能造成的破坏性后果,建议所有使用fastjson的开发者和企业进行紧急排查。受影响的版本包括fastjson的所有版本低于1.2.60。为修复此问题,fastjson发布了一系列的安全补丁版本,针对不同的旧版本提供了相应的升级路径。例如,1.1.15到1.1.31的用户应升级到1.1.31.sec07版本,而1.2.9到1.2.29的用户则应升级到1.2.29.sec06版本等。 时间线上,fastjson在2019年9月3日提交了修复此问题的补丁,而360-CERT在9月5日发布了安全预警。对于那些使用fastjson的开发者和组织来说,及时更新到安全版本以防止遭受潜在攻击至关重要。同时,加强输入验证,避免解析未经验证的JSON数据,也是防范此类漏洞的基本策略。 参考链接指向了fastjson项目在GitHub上的修复commit,可以通过以下链接获取更多细节: https://github.com/alibaba/fastjson/commit/99584517 fastjson的这个严重漏洞提醒我们,即使是广受欢迎的库也可能存在安全隐患,及时关注并修复这些漏洞是保障系统安全的重要环节。对于使用fastjson的开发者,确保及时更新到最新安全版本,并采取额外的安全措施,如输入验证,以增强系统的安全性。