问题

  • 升级了gradle,改了文件存储位置,项目需要重新构建下载依赖文件,发现fastjson 1.2.66一直下载不下来
  • 一直卡在下载,就想着手动下载下试试,就去了mvnrepository网站
  • 找到fastjson时,发现了fastjson2

Note: This artifact was moved to: com.alibaba.fastjson2 » fastjson2

  • mvnrepository网站提供的最新fastjson版本为2.0.24,而且看了下,最低可用版本为1.2.83
  • 其余更低版本的,有一些风险点漏洞,可能会被利用,对程序或数据造成篡改,具体可以点击进去
  • 这里贴其中一个CVE-2022-25845,描述翻译为:1.2.83之前的包com.alibaba:fastjson通过绕过默认的autoType关闭限制,容易受到不受信任数据的反序列化攻击,这在某些情况下是可能的。利用此漏洞可以攻击远程服务器。解决方法:如果无法升级,可以启用[safeMode]

解决

  • 很多项目持续了很久,一些jar包依赖的版本,可能是很低版本的,这些版本就可能存在一些被发现和公布的漏洞
  • 如果是部署在互联网的程序,或者本身对安全要求比较高,建议追踪主要jar包的版本变动,主动使用比较新的稳定版本
  • 此次将项目里使用的com.alibaba:fastjson全部升级至1.2.83
  • 另外,针对现在服务器的高内存配置和jdk的高版本发布,使用com.alibaba.fastjson2 » fastjson2也是一个不错的选择,根据官方文档,性能有不小的提升。待其更加稳定时,可以考虑纳入生产项目使用