内容提要
PostGIS 3.7.0rc1发布,需配合PostgreSQL 19 Beta 3及GEOS 3.15.0rc1使用,支持PostgreSQL 14-19rc1、GEOS 3.10+和Proj 6.1+。此版本修复了3.7.0beta2以来的多个问题,包括防止空指针解引用、CPU拒绝服务攻击、畸形SRID前缀解析错误,以及多项GSERIALIZED和NURBS曲线相关的安全漏洞。升级时需运行postgis_extensions_upgrade()。
延伸解读
版本依赖与升级注意事项
PostGIS 3.7.0rc1是候选版本,需要PostgreSQL 14至19rc1、GEOS 3.10+和Proj 6.1+。若想使用全部功能,需GEOS 3.15+和SFCGAL 2.3.0+。升级时,PostGIS 3系列需运行postgis_extensions_upgrade(),而PostGIS 2系列需先更新扩展再运行该函数。建议在测试环境验证升级流程。
安全修复重点
此版本修复了多个安全漏洞,包括防止空指针解引用、CPU拒绝服务攻击(通过非有限控制点)、畸形SRID前缀解析错误,以及GSERIALIZED和NURBS曲线相关的多个问题。这些修复多由OSS-Fuzz发现,表明模糊测试在提升空间数据安全性方面的重要性。用户应尽快升级以防范潜在风险。
新功能与稳定性平衡
作为3.7.0的候选版本,它包含自3.6.4以来的新功能和错误修复。但候选版本可能仍存在未发现的问题,不适合生产环境。建议开发者和测试人员关注其新特性,并在测试环境中验证,同时留意官方后续的正式版本发布。
Q&A
PostGIS 3.7.0rc1 需要哪些版本的 PostgreSQL、GEOS 和 Proj?
PostGIS 3.7.0rc1 需要 PostgreSQL 14 到 19rc1,GEOS 3.10 或更高版本,以及 Proj 6.1 或更高版本。为了使用所有功能,建议使用 GEOS 3.15 或更高版本。
PostGIS 3.7.0rc1 修复了哪些安全问题?
修复了多个安全问题,包括防止空指针解引用、CPU拒绝服务攻击(通过非有限控制点的NURBS曲线)、畸形SRID前缀解析错误,以及多个GSERIALIZED和NURBS曲线相关的安全漏洞。
如何从 PostGIS 3 系列升级到 3.7.0rc1?
安装二进制文件或运行 pg_upgrade 后,执行 SELECT postgis_extensions_upgrade(); 即可升级所有 PostGIS 扩展。
PostGIS 3.7.0rc1 是正式版吗?
不是,3.7.0rc1 是 PostGIS 3.7.0 的发布候选版本(Release Candidate),属于主要版本的候选版,包含自 3.6.4 以来的错误修复和新功能。
PostGIS 3.7.0rc1 需要哪些额外的软件才能使用所有功能?
为了使用所有功能,需要 GEOS 3.15 或更高版本;为了使用所有 SFCGAL 功能,需要 SFCGAL 2.3.0 或更高版本。
PostGIS 3.7.0rc1 修复了哪些与 GSERIALIZED 相关的漏洞?
修复了多个 GSERIALIZED 相关的漏洞,包括:比较 SRID 时未规范化超出范围的值、分配与恶意 varlena 大小头一致、拒绝畸形多边形环、保持 bbox 比较与序列化标志一致、拒绝截断的 NURBS 向量负载等。