com.alibaba:fastjson 组件安全漏洞及健康度分析

文章更新时间:2023年8月22日 17:40

com.alibaba:fastjson

组件简介

维护者alibaba组织许可证类型Apache-2.0
首次发布2015年5月10日最新发布时间2023年8月15日
依赖包5,081依赖存储库117,744
Docker 依赖数1,494Docker 下载量9,591,272

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

官网:https://alibaba.github.io/fastjson2/

官方仓库地址:https://github.com/alibaba/fastjson2

使用文档:https://github.com/alibaba/fastjson2/blob/main/README.md

参考链接:

https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.alibaba:fastjson

组件健康度

技术健康度根据GitHub上的信息,fastjson是一个高性能、易用、功能丰富的JSON库,它可以实现Java对象和JSON字符串之间的相互转换,支持任意复杂的Java对象,包括预先存在的没有源代码的对象。它还提供了一些高级特性,如自定义序列化器、泛型支持、安全模式等。fastjson在服务器端和安卓客户端都有很好的表现,它在一些性能测试中都取得了优异的成绩。
社区健康度fastjson是由阿里巴巴开发和维护的一个开源项目,它在GitHub上有超过2.7万个星标,是Java类别中最受欢迎的项目之一。它也有很多贡献者和用户,目前有超过130个分支,超过3400个提交,超过1400个问题,超过800个拉取请求。它的社区活跃度很高,经常有新的功能和修复发布。
更新和维护频率fastjson的更新和维护频率很高,它目前已经发布了2.0.x版本,比1.x版本更快更安全,建议用户升级到最新版本。它的最近一次提交是在2023年8月22日,最近一次发布是在2023年8月15日。它也有一个详细的更新日志,记录了每个版本的变化和改进。
兼容性该组件与其他项目组件和框架有着良好的兼容性。它可以无缝集成在 Spring 和 JAX-RS 中,也可以在 Kotlin 中使用。它还支持 Java 泛型和自定义对象表示。
文档和支持该组件有着清晰和详尽的文档,以及提供相应的用户支持和社区交流渠道。它在 GitHub 上有着完整的 wiki 和 FAQ,以及一些示例代码和最佳实践指南。它还有着一个活跃的 issue 和 pull request 系统,以及一个 gitter 聊天室。

综上所述,com.alibaba:fastjson这个组件的健康度很高,它是一个值得信赖和使用的JSON库。

参考链接:

https://github.com/alibaba/fastjson

https://github.com/alibaba/fastjson2

https://github.com/eishay/jvm-serializers/wiki

https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark

https://alibaba.github.io/fastjson2/

许可证解读

Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:

  1. 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
  2. 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
  3. 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
  4. 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
  5. 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
  6. 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。

需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。

许可证原文链接:fastjson2/LICENSE at main · alibaba/fastjson2 (github.com)

组件漏洞版本及修复方案

漏洞编号漏洞标题漏洞等级影响版本修复版本
MPS-2022-11320Fastjson < 1.2.83 任意代码执行漏洞高危[1.1.15,1.2.83)1.2.83
MPS-2020-39708Fastjson <=1.2.68 远程代码执行漏洞严重[1.1.15,1.2.69)1.2.69
MPS-2020-40828Fastjson < 1.2.67远程命令执行漏洞高危[1.1.15,1.2.67)1.2.67
MPS-2019-28847Fastjson <= 1.2.60 版本远程代码执行漏洞严重(-∞,1.2.61)1.2.61

同类可替代组件

  • Jackson: Jackson是Java中一个广泛使用的JSON处理库,具有高性能和广泛的功能。它支持JSON和Java对象之间的双向转换,并且在大多数情况下与fastjson具有相似的性能。  官网:https://github.com/FasterXML/jackson

  • Gson: Gson是Google提供的JSON库,可以轻松地将Java对象序列化为JSON格式,并将JSON字符串解析回Java对象。它简单易用,适用于许多场景。  官网:https://github.com/google/gson

  • JSON.simple: JSON.simple是一个轻量级的JSON处理库,特别适合处理简单的JSON数据。它相对于其他库来说更小巧,但功能也较为有限。  官网:https://github.com/fangyidong/json-simple

  • org.json: org.json是Java标准库中的JSON处理库,提供了简单的JSON解析和构建功能。尽管它不如其他库那么强大,但在某些场景下可能是一个合适的替代方案。  官网:https://stleary.github.io/JSON-java/index.html

选择合适的替代组件取决于项目的需求和性能要求。如果您需要高性能的JSON解析库,可以选择Jackson或Gson。如果项目需要一个简单而轻量级的解决方案,可以考虑JSON.simple或org.json。最终的选择应该基于项目的具体要求和性能需求来做出决定。

组件SBOM

org.springframework:spring-beans5.3.28maven
net.sourceforge.javacsv:javacsv2.0maven
org.springframework:spring-messaging5.3.28maven
org.apache.tomcat.embed:tomcat-embed-core10.1.10maven
com.google.protobuf:protobuf-java3.24.0maven
org.springframework:spring-context6.0.10maven
io.micrometer:micrometer-observation1.10.8maven
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml2.15.2maven
jakarta.annotation:jakarta.annotation-api1.3.5maven
org.jboss.logging:jboss-logging3.4.1.Finalmaven
com.google.re2j:re2j1.6maven
org.springframework.boot:spring-boot-starter-web2.7.13maven
org.springframework.boot:spring-boot3.1.1maven
org.springframework.boot:spring-boot-configuration-processor3.1.1maven
org.springframework:spring-web6.0.10maven
com.esotericsoftware:reflectasm1.11.9maven
org.springframework.boot:spring-boot-starter-validation2.7.13maven
org.apache.tomcat.embed:tomcat-embed-el9.0.76maven
……

该SBOM清单仅展示部分内容

完整SBOM清单及检测报告:https://www.murphysec.com/console/report/1693930597566472192/1693930602092126208?allow=1

(0)
上一篇 2023年8月24日 下午5:11
下一篇 2023年8月24日 下午6:15

相关推荐