fastjson

FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.

APACHE-2.0 License

Stars
25.7K
Committers
197
fastjson - FASTJSON 1.2.83版本发布(安全修复) Latest Release

Published by wenshao over 2 years ago

这是一个安全修复版本,修复最近收到在特定场景下可以绕过autoType关闭限制的漏洞,建议fastjson用户尽快采取安全措施保障系统安全。

安全修复方案https://github.com/alibaba/fastjson/wiki/security_update_20220523

FASTJSON2已经发布并且提供兼容包,性能更好也更安全,升级指南 https://github.com/alibaba/fastjson2/wiki/fastjson_1_upgrade_cn

Issues

  1. 安全加固
  2. 修复JDK17下setAccessible报错的问题 #4077
fastjson - fastjson 1.2.79版本发布,BUG修复

Published by wenshao almost 3 years ago

这又是一个bug fixed的版本,大家按需升级

Issues

  1. 修复引入MethodInheritanceComparator导致某些场景序列化报错的问题
  2. 增强JDK 9兼容
  3. 修复JSONArray/JSONObject的equals方法在内部对象map/list相同时不直接返回true的问题

相关链接

fastjson - fastjson 1.2.76版本发布,BUG修复增强兼容

Published by wenshao over 3 years ago

这又是一个bug fixed的版本,大家按需升级

Issues

  1. 修复一些直接抛RuntimeException的问题 #3631
  2. parser自动识别gzip bytes #3614
  3. 修复Throwable继承类属性不支持自动类型转换问题 #3217
  4. 修复PrettyFormat情况下引用计算不对的问题 #3672
  5. 修复AutoType不兼容LinkedHashMap的问题
  6. 增强对Enum类型的自定类型转换
  7. 修复deserializeUsing在泛型某些场景不能正常工作的问题 #3693
  8. 提升JSONReader性能,减少小对象创建 #3627
  9. 增强对JSONPath对filter的支持 #3629
  10. JSONPath支持忽略NullValue的选项 #3607
  11. 增强对定制化enum的支持 #3601
  12. 增强对java.time.Instant和org.joda.time.Instant的支持 #3539
  13. 修复Parser某些场景不能识别引用的问题

相关链接

fastjson - fastjson 1.2.75版本发布,例行Bug修复

Published by wenshao almost 4 years ago

这又是一个Bug修复版本,大家按需升级

Issues

  1. 修复@Configuration配置导致序列化死循环的问题 #3469
  2. 修复某些场景使用TypeReference反序列化导致死循环的问题
  3. mixin支持@JSONCreator配置
  4. 修复某些情况反序列化引用计算不对的问题
  5. 增强对JSONPath的支持 #3493
  6. 修复某些场景JSONValidator返回结果不对的问题

相关链接

fastjson - fastjson 1.2.74版本发布,例行Bug修复

Published by wenshao about 4 years ago

这又是一个Bug修复版本,大家按需升级

Issues

  1. 修复序列化时BeforeFilter/AfterFilter某些场景报空指针异常的问题 #3373 #3475
  2. TypeUtils float/double转换为BigInteger/BigDecimal时判断isNan和isInfinite
  3. 支持通过启动参数和fastjson.properties配置fastjson.auto.discoverable, 解决某些场景fastjson与jackson冲突问题
  4. 增强对Jdk8日期格式化支持 #3288
  5. 修复某些场景对泛型推导不正确的问题 #3448
  6. 修复JSONValidator某些场景结果不对的问题 #3453 #3460
  7. 序列化增加对org.json.JSONObject的支持

相关链接

fastjson - fastjson 1.2.73版本发布, Bug修复提升兼容

Published by wenshao about 4 years ago

这个是一个小版本升级,修复最近升级过程中遇到的一些Bug和兼容问题。

Issues

  1. 修复AfterFilter某些场景会抛空指针的问题 #3217 #3150
  2. 提升JSONValidator的性能
  3. 修复在带T的定制日期格式时不生效的问题 #3361
  4. 修复JSONObject.get和contains方法对Boolean/Character/UUID类型Key行为和Number类型不一致
  5. 修复传入ParameteredTypeImpl导致内存泄露的问题
  6. 修复JSONValidator某些场景结果不对的问题 #3343
  7. 修复某些场景引用计算不对的问题 #3336
  8. 修复NumberDeserializer不支持~Feature.UseBigDecimal的问题 #3326
  9. 修复JSONArray做Java反序列化是某些场景报错的问题
  10. 修复JSONObject.toJavaObject某些场景JSONField不起作用的问题 #3313
  11. 增强支持castToDate支持 #3309
  12. 增强对Kotlin的支持
  13. 修复泛型方法重载后类型丢失的问题 #3227
  14. 修复对Moneta对BigDecimal类型兼容的问题 #3318
  15. 修复1.2.71~1.2.72版本某些场景key大小写敏感的问题 #3312

相关链接

fastjson - fastjson 1.2.72版本发布,兼容JDK5/6/7

Published by wenshao over 4 years ago

1.2.72在1.2.71的版本上修复对kotlin和JDK 5/6/7支持的问题

Issues

  1. 修复对JDK 5/6/7版本不支持的问题 #3280
  2. 增强对JDK 11 immutable collection的支持
  3. 新增加Parser Feature TrimStringFieldValue #3279
  4. 增强对对日期格式的识别 #3282
  5. 序列化忽略InputStream & Reader类型的字段
  6. 修复Joda日期类型不支持SerializerFeature WriteDateUseDateFormat的问题
  7. 修复某些场景下JSONValidator校验结果不对的问题 #3296 #3293
  8. 修复Map类型字段设置parseFeatures = Feature.DisableSpecialKeyDetect无效的问题 #3138
  9. 增强对kotlin的支持 #3274

相关链接

fastjson - fastjson 1.2.71版本发布,修复对kotlin支持和兼容JDK5

Published by wenshao over 4 years ago

1.2.71在1.2.70的版本上修复对kotlin和JDK 5支持的问题。

Issues

  1. 修复对kotlin支持的bug #3223 #3248
  2. 支持JSONPatch
  3. 修复JSONValidator某些场景getType结果不对的问题
  4. 修复对下划线字段智能匹配的问题
  5. 修复对带对特别字符引用不支持的问题
  6. parseArray方法支持config
  7. 增强对JSONPath的支持
  8. 补充安全黑名单,无新增利用,预防性补充。
  9. 增强BigInteger和BigDecimal的边界检测
  10. JSONType支持配置AutoTypeCheckHandler
  11. 增强对enum类型的定制化序列化反序列化支持 https://github.com/alibaba/fastjson/wiki/enum_custom_serialization

相关链接

fastjson - fastjson 1.2.70版本发布,提升兼容性

Published by wenshao over 4 years ago

这是一个小的改进版本,主要是在1.2.69上做bug fixed,提升兼容性。

Issue

  1. 修复toJavaObject某些场景结果不对的问题
  2. 增强对kotlin的支持
  3. 增强对protobuf的支持
  4. 修复JSONPath set方法不能自动类型转换的问题
  5. 修复序列化有循环引用key带特殊字符结果不对的问题
  6. 安全加固,增加autoType黑名单

相关链接

fastjson - fastjson 1.2.69版本发布,修复高危安全漏洞

Published by wenshao over 4 years ago

这是一个关键的安全修复版本,修复新发现高危autotype开关绕过安全漏洞,请大家尽快升级到1.2.69或者更新版本。

Issues

  1. 安全修复,修复新发现高危autotype开关绕过安全漏洞
  2. 安全修复,补全autoType黑名单
  3. 修复JSONValidator不当抛出异常的问题
  4. 增强对geojson的支持
  5. 修复对java.sql.Timestamp带nano场景序列化结果不对的问题
  6. WriteClassName新增对LinkedHashSet的支持
  7. 修复当时间为1970-01-01 08:00:00 时,TypeUtils.castToTimestamp 转换异常的问题
  8. 修复当@type为白名单是抛空指针的问题 #3109
  9. 修复EasyMock场景报NPE的问题 #3119
  10. 修复某些场景下反序列化enum报错的问题 #2065
  11. 修复JSONPath keySet不能之别Number/Date/UUID类型的问题
  12. JSONPath支持中文key
  13. 修复Feature.InitStringFieldAsEmpty启用时,某些场景结果不对的问题 #3050 #2387
  14. 支持中文package的类名序列化和反序列化
  15. 增强对kotlin的支持
  16. 优化序列化性能,在boolean和长字符串场景减少内存碎片

相关链接

fastjson - fastjson 1.2.68版本发布,支持GEOJSON

Published by wenshao over 4 years ago

fastjson 1.2.68版本发布,Bug修复功能增强安全加固

这又是一个Bug修复功能安全加固版本,补充了autoType黑名单。如果已经升级到1.2.67版本或者所有sec09版本,没有显式打开autoType,不需要因为安全原因升级到1.2.68。

在1.2.68中引入一个safeMode的配置,配置safeMode后,无论白名单和黑名单,都不支持autoType。

在1.2.68版本中,引入了GeoJSON的支持。https://github.com/alibaba/fastjson/wiki/geojson_cn

Issues

  1. 内置支持geojson https://github.com/alibaba/fastjson/wiki/geojson_cn
  2. 修复1.2.67版本引入JSONObject.toJavaObject某些场景结果不对的问题。
  3. ParserConfig加入AutTypeCheckHandler支持,允许自定义安全检查
  4. jsonpath修复对.max和.min支持的bug #3066
  5. 修复JSONObject containsKey对Number值类型参数行为和getObject不一致的问题 #3093
  6. 增强对Map.Entry泛型的支持
  7. 增加autoType黑名单。
  8. 支持配置safeMode https://github.com/alibaba/fastjson/wiki/fastjson_safemode

相关链接

fastjson - fastjson 1.2.67版本发布,Bug修复安全加固

Published by wenshao over 4 years ago

这又是一个Bug修复安全加固版本,补充了autoType黑名单。

Issues

  1. 修复toJavaObject方法JSONField.deserializeUsing配置不生效的问题 #3060
  2. 反序列化增加对java.util.Deque的支持
  3. 反序列化增强识别日期格式yyyy-MM-d HH:mm:ss #3049
  4. 修复某些场景JSONPath报错的问题 #3056
  5. 增强autoType安全黑名单

相关链接

fastjson - fastjson 1.2.66版本发布,Bug修复安全加固

Published by wenshao over 4 years ago

这又是一个维护版本,修复了一些BUG,并且做安全加固,补充了AutoType黑名单。

Issues

  1. 修复某些场景下BeanToArray报错的问题
  2. 修复某些场景多版本共存导致的的兼容问题
  3. 修复JSONArray构造方法中,由null List会引发的NPE问题
  4. 修复大对象某些场景会报错的问题 #2779
  5. 修复字符串自动转换为数值时,小数点后全零报错的问题 #2838
  6. 修复某些场景下不识别Kotlin泛型的问题
  7. 修复开始SupportNonPublicField特性后JSONField配置name不支持private字段的问题 #2866
  8. 修复纳秒级 Timestamp 解析异常问题 #2894
  9. 日期自动识别增强对纳秒时间的支持的
  10. 支持对Queue类型的反序列化
  11. 修复JSONField 在LocalDateTime类型时 format 不生效问题
  12. 修复JSONValidator有些场景不能识别非法JSON数据的问题 #3017
  13. 加强安全防护

相关链接

国庆期间在家休息,更新一个版本。主要是增加autoType黑名单、增强日期反序列化支持、增强JSONPath支持。

再次声明一下,fastjson的autoType缺省是关闭的,缺省是基于白名单的。autoType黑名单的不断补充是给一些特别场景需要的,没有显式打开autoType的用户,不需要因为安全原因升级到大于1.2.60的版本。

Issues

  1. 增加autoType黑名单
  2. 修复JavaBeanSerializer.processValue兼容问题 #2790
  3. 修复JSONField.unwrapped在toJSON方法中不起作用的问题 #2447
  4. 增强日期定制序列化反序列化的支持,增强dateFormat的支持,新增支持'millis'和'unixtime'两种格式输出和反序列化
  5. 修复某些场景下多级别泛型推导不起作用的问题 #2397
  6. JSONPath.remove方法支持更多语法 #2791
  7. JSONPath复杂表达式支持更多场景 #2743 #2792
  8. 支持$和_开头字段 #2762
  9. 反序列化自动识别日期格式支持新西兰时区 #2754

相关链接

fastjson - Fastjson发布1.2.61版本,增加AutoType安全黑名单

Published by wenshao about 5 years ago

最近Freebuf有人发表了文章,公布了两个不在autoType黑名单中可以被利用的类,某安全厂商把漏洞定义为高。这里要说明下,autoType默认是关闭的,需要显示配置打开并且依赖特定包的漏洞不应该算是高危漏洞。

欢迎 https://github.com/Omega-Ariston 成为 fastjson的committer。

Issues

  1. 增加autoType安全黑名单
  2. 恢复1.2.60版本SerializeConfig中误删的put方法
  3. 修复JSONField.unwrapped在某些场景属性丢失的问题 #2753
  4. 修复Feature.NonStringKeyAsString在某些场景不生效的问题 #2736
  5. 修复不支持guava ArrayListMultimap的问题 #2430
  6. 修复JSON.parseArray方法不能识别byte[].class和char[].class作为变长参数的问题 #2464
  7. 修复snake_case配置在嵌套时不生效的问题 #2428
  8. 修复BigInteger类属性在超大数时结果不对的问题 #2628
  9. 修复java.sql.Date在某些场景丢失精度的问题

相关链接

fastjson - fastjson 1.2.60版本发布 修复拒绝服务安全问题

Published by wenshao about 5 years ago

这又是一个BUG修复安全加固版本,增加了AutoType黑名单,修复了一个导致拒绝服务的问题。

安全修复建议

拒绝服务安全漏洞涉及之前所有FASTJSON版本,建议升级到最新版本1.2.60。如果遇到不兼容问题,可以使用如下兼容版本:

1.1.15~1.1.31 -> 1.1.31.sec07 这版本不一样是因为1.1.31.sec06发布后,发现1.1.31版本特有一个的问题,又发布了1.1.31.sec07
1.1.32~1.1.33 -> 1.1.33.sec06 
1.1.34        -> 1.1.34.sec06
1.1.35~1.1.46 -> 1.1.46.sec06
1.2.3~1.2.7   -> 1.2.7.sec06 因为1.2.7使用最多特别提供,也可以直接使用1.2.8.sec06
1.2.8 -> 1.2.8.sec06
1.2.9~1.2.29 -> 1.2.29.sec06

安卓版本1.1.71.android 不受此漏洞影响。

已知不兼容列表

https://github.com/alibaba/fastjson/wiki/1_2_60_incompatible

为了方便大家无缝升级,提供了如下原地升级版本

1.2.48.sec06
1.2.51.sec06
1.2.54.sec06
1.2.56.sec06
1.2.57.sec06
1.2.58.sec06

Issues

  1. 安全增强,增加AutoType黑名单,修复特定场景导致拒绝服务的问题
  2. 序列化支持org.json.JSONObject类型 #1780
  3. 修复某些场景Enum定制反序列化不生效的问题 #2179
  4. 修复某些场景解析非法字符串不抛异常的问题 #2641
  5. 修复JSONField配置WriteBigDecimalAsPlain不生效的问题 #2355
  6. 增强Builder模式支持,JSONPOJOBuilder支持withPrefix为空字符串等,#2346 #2673
  7. 修复全接口对象@Transient不起作用的问题 #1903
  8. 修复解析base64字符串带'/'解析错误的问题
  9. 修复使用JSONField指定序列化使用单引号不生效的问题 #2678
  10. 修复使用JSONField指定WriteMapNullValue特性不生效的问题
  11. 反序列化自动识别日期格式支持'yyyy-MM-dd HH:mm:ss,SSS'
  12. 反序列化日期格式支持unixtime #2300
  13. 修复序列化byte[]在某些场景报错的问题 #2602
  14. 新增加高性能JSONValidator API https://github.com/alibaba/fastjson/wiki/JSONValidator
  15. 新增Mixed功能,解决第三方无法修改源码的类定制序列化问题 https://github.com/alibaba/fastjson/wiki/MixInAnnotations_cn

相关链接

fastjson - fastjson-1.2.59发布,增强AutoType打开时的安全性

Published by wenshao about 5 years ago

这个版本主要是补充AutoType黑名单,增强AutoType打开时的安全性。建议不要缺省打开AutoType,AutoType打开后,黑名单是无法保证是完整的。

Issues

  1. 安全增强补充AutoType黑名单
  2. 增强JSONPath对特别字符的支持 #2515
  3. JSONPath.remove方法支持deepScan语法
  4. 修复Field和Getter类型不一致时反序列化报错的问题
  5. 修复JSONObject.toJavaObject报错的问题 #2516

相关链接

fastjson - fastjson 1.2.58版本发布,修复JDK 5/6/7版本兼容问题

Published by wenshao over 5 years ago

五一期间没外出,在家休息,修复已知问题,发一个版本。改动很少,只有3个Issue。

Issues

  1. 修复JDK 5/6/7兼容问题
  2. 内置支持Moneta
  3. 提升JSONObject.toJavaObject性能

相关链接

fastjson - fastjson 1.1.71.android版本发布 优化某些场景的性能

Published by wenshao over 5 years ago

这个是例行维护版本,修复2个bug,增加一个1.2.x兼容的方法,优化部分场景的性能。

Issues

  1. 修复反序列化Class[]类型报错的问题 #1945
  2. 修复JSONType指定typeKey时反序列化丢失部分字段的问题 #1941
  3. 增加JSON.parseObject(String/Type/ParserConfig/Feature...)方法,兼容1.2.x API
  4. 提升JSONObject.toJavaObject方法性能
  5. 提升字符串castToDouble的性能

相关链接

fastjson - fastjson 1.2.57版本发布 Bug修复维护版本

Published by wenshao over 5 years ago

这又是一个例行的bug修复维护版本。修复BUG ,提升某些场景的性能。

Issues

  1. 修复智能匹配多余字段时覆盖原字段的问题 #2348
  2. 支持序列化按父类字段序列化 #2289 https://github.com/alibaba/fastjson/wiki/WriteAs_CN
  3. 修复JSON.parseArray反序列化非静态内部类时报错信息不友好的问题 #2358
  4. 修复JSONPath的一些问题 #2189 #2306
  5. 修复Java 10兼容问题 #2105
  6. 修复SupportArrayToBean反序列化首字段是字符串是报错的问题 #2351
  7. 序列化反序列化支持ByteBuffer类型 #2357
  8. 修复BrowserCompatible在long类型时无效的问题 #2344
  9. 序列化java.sql.Date使用yyyy-MM-dd格式 #2156
  10. Date、Timestamp类型支持1970年以前的时间格式 #2260
  11. 新增JSONObject.toString(SerializeFeature...)方法 #2074
  12. 修复复杂继承情况下 TypeUtils.getCollectionItemType() 获取类型错误导致反序列化失败的问题 #2224
  13. 提升字段数量大于200个的对象反序列化性能
  14. 提升JSONObject.toJavaObject性能

相关链接