V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
log4geek
V2EX  ›  Java

fastjson 爆 bug 啦,码农们,老板叫你改 bug 了!

  •  2
     
  •   log4geek · 2017-03-17 15:27:02 +08:00 · 11223 次点击
    这是一个创建于 2809 天前的主题,其中的信息可能已经有所发展或是发生改变。
    2017 年 3 月 15 日, Fastjson 官方发布安全公告,该公告介绍 fastjson 在 1.2.24 以及之前版本存在代码执行漏洞代码执行漏洞,恶意攻击者可利用此漏洞进行远程代码执行,从而进一步入侵服务器,目前官方已经发布了最新版本,最新版本已经成功修复该漏洞。
    具体漏洞详情如下:


    漏洞编号:
    暂无
    漏洞名称:
    Fastjson 远程代码执行漏洞
    官方评级:
    高危
    漏洞描述:
    fastjson 在 1.2.24 以及之前版本存在代码执行漏洞,当用户提交一个精心构造的恶意的序列化数据到服务器端时, fastjson 在反序列化时存在漏洞,可导致远程任意代码执行漏洞。
    漏洞利用条件和方式:
    黑客可以远程代码执行成功利用该漏洞。
    漏洞影响范围:
    1.2.24 及之前版本
    漏洞检测:
    检查 fastjson 版本是否在 1.2.24 版本内
    复制代码
    lsof | grep fastjson

    漏洞修复建议(或缓解措施):
    目前官方已经发布了最新版本,该版本已经成功修复该漏洞。
    阿里云上用户建议采用以下两种方式将 fastjson 升级到 1.2.28 或者更新版本:
    更新方法如下:
    1.Maven 依赖配置更新

    通过 maven 配置更新,使用最新版本,如下:
    复制代码
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.28</version>
    </dependency>

    2.最新版本下载

    下载地址: http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.28/

    ****
    我们项目里好多地方用了 fastjson ,老板一看到就很紧张,叫我们马上全升级成最新版 1.2.28 。。。。然后系统挂了!!
    后来查了资料才发现原来用了 autotype 的不能直接升级。。。需要处理下。还有其他一些用了更老版本的特性的也不能直接升 1.2.28 。。反正比较混乱就是了,各种全盘搜索代码,折腾了一天把旧的成功转换过来。做了些笔记,欢迎围观

    http://log4geek.cc/2017/03/fastjson%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/
    20 条回复    2017-05-24 23:24:16 +08:00
    onetrlee
        1
    onetrlee  
       2017-03-17 15:52:19 +08:00
    用的 Simple JSON 和 Gson
    躲过一劫.<侥幸脸>
    Troevil
        2
    Troevil  
       2017-03-17 16:19:22 +08:00
    自己写的 json 序列化和反序列化,有 bug 了也不知道 😆
    ic3z
        4
    ic3z  
       2017-03-17 20:31:11 +08:00 via Android
    我就想看看有没有人放出 PoC 来。
    sxul07
        5
    sxul07  
       2017-03-17 23:58:19 +08:00
    C#版本的也有吗
    log4geek
        6
    log4geek  
    OP
       2017-03-18 09:25:32 +08:00
    @ic3z Poc 是什么鬼

    @sxul07 这个我就不知道拉,好多年没搞过 C#了
    Miy4mori
        7
    Miy4mori  
       2017-03-18 12:28:57 +08:00 via iPhone
    只用 Jackson 和 Gson ,阿里系的产品不敢用。
    Troevil
        8
    Troevil  
       2017-03-18 14:58:33 +08:00
    @Miy4mori 然而数据量大的时候 jackson 效率不高,gson 正比增长, fastjson 比较稳定,所以才会用, 不要看到阿里系的就否定啊
    taowen
        9
    taowen  
       2017-03-18 19:37:17 +08:00
    @Troevil jackson 效率不高,给出证据来。
    Troevil
        10
    Troevil  
       2017-03-18 19:47:02 +08:00
    @taowen 之前简单测试的 同一个机器同一个对象, 重复解析反解析 10W 次 jackson gson fastjson , fastjson 最快 然后 gson jackson 最慢,
    解析一次 gson 最快 然后 jackson , fastjson 最慢
    这是我之前测试的结果,现在没环境没法上截图了
    Troevil
        11
    Troevil  
       2017-03-18 19:47:32 +08:00
    @taowen 另外效率不高是针对这三者来说的
    taowen
        12
    taowen  
       2017-03-18 21:26:58 +08:00
    @Troevil 请给出你的测试代码。我不相信 jackson 比 fastjson 慢。
    Troevil
        13
    Troevil  
       2017-03-18 21:33:00 +08:00
    @taowen 你自测一下不就行了,没什么好争论的,如果你觉得 jackson 比 fastjson 快那就用 jackson 好了,反正通常效率的瓶颈肯定不在这点解析时间上
    taowen
        14
    taowen  
       2017-03-18 23:55:24 +08:00
    @Troevil https://github.com/json-iterator/java-benchmark 我测过。 jackson 确实比 fastjson 快。
    sagaxu
        15
    sagaxu  
       2017-03-19 01:38:41 +08:00 via Android
    https://www.zhihu.com/question/44199956

    fastjson 这么快老外为啥还是热衷 jackson?
    msg7086
        16
    msg7086  
       2017-03-19 05:53:13 +08:00
    @log4geek Proof of Concept
    Miy4mori
        17
    Miy4mori  
       2017-03-19 19:47:34 +08:00 via iPhone
    @Troevil 只能说你的测试有问题
    Troevil
        18
    Troevil  
       2017-03-19 20:08:41 +08:00
    @Miy4mori 嗯 有问题 jackson 最快
    log4geek
        19
    log4geek  
    OP
       2017-03-20 11:24:46 +08:00
    @msg7086 又涨见识了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5571 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:02 · PVG 15:02 · LAX 23:02 · JFK 02:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.