能否移除GDAL的libtiff依赖消除CVE-2022-3970漏洞?或获取轻量OGR包?
解决GDAL仅用OGR功能时libtiff漏洞的可行方案
1. 编译仅含OGR组件的最小GDAL版本
GDAL支持编译时完全跳过栅格模块,只构建ogr2ogr、ogrinfo这类OGR工具,彻底规避内置libtiff和GTiff驱动:
- 拉取GDAL稳定版源码(推荐3.x系列,兼容性更佳)
- 运行配置命令,明确禁用栅格功能并排除libtiff相关依赖:
./configure --disable-raster --enable-ogr --without-libtiff --without-gtiff --with-python=no--disable-raster会直接跳过所有栅格驱动的编译,包括内置的libtiff;额外的--without-libtiff和--without-gtiff是双重保障,确保不会链接任何TIFF相关库 - 编译安装:
编译完成后,make -j$(nproc) sudo make installogr2ogr和ogrinfo仅依赖矢量处理所需的库(如GEOS、PROJ),不再包含libtiff相关代码。
2. 给GDAL内置libtiff打指定补丁
如果无法立即重新编译最小版本,可直接修复内置libtiff的漏洞:
- 找到GDAL源码内的
libtiff目录(通常路径为gdal/frmts/gtiff/libtiff) - 将补丁
227500897dfb07fb7d27f7aa570050e62617e3be对应的修改应用到tif_getimage.c文件 - 重新编译GDAL即可修复CVE-2022-3970漏洞,无需移除整个libtiff依赖。
3. 升级Ubuntu官方GDAL包
检查Ubuntu软件源是否已推送修复该漏洞的GDAL更新:
- 执行命令查看可升级包:
apt update && apt list --upgradable gdal-bin - 若有可用更新,直接升级:
官方包会针对内置libtiff进行补丁修复,无需自行处理源码。sudo apt upgrade gdal-bin
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

