Fastjson 1.2.60以下版本 爆出重大漏洞,苦逼升级整个项目后,仔细分析具体原因,看看哪里的锅

突然有一天,老大突然在群里说,把fastjson 包升级到1.2.60,我一脸蒙蔽,听说有重大安全漏洞,就赶紧升级完提交测试了。

今天刚好有空,赶紧上全球最大的程序员同性交友网站扒拉扒拉看看具体bug,做到心里有点B数。

话不多说,上同性交友网站截图:

撸个代码试一下,实践是检验真理的唯一标准,也是找出bug的快速方法:

public class FastJsonTest {

    public static void main(String[] args) {
        String str = "{\"g\":\"\\x";
        Object obj = JSON.parse(str);
        System.out.println(str);
    }

}

写完,运行,然后报错,一气呵成。

看更新记录,这个解决方案直接加一层判断,贼6,就去老版本这里打个断点吧:

开启找你妹(debug)模式 :

 看,他来了

‘\u001A’ 表示已经读完了也就是EOF,然后看 x1  已经是结束,x2 再次为此,继续debug,

发现执行了putChar方法,执行完sp的值+1

然后继续执行,又返回scanString方法,又开始了一遍

可怕的事情来了。。。竟然进入了死循环,sp增加到sbuf.length(512)的时候,会进入if分支,开始扩容。

然后OOM。

咦,真吓人,赶紧升级1.2.60吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值