关键信息总结 漏洞描述 漏洞类型: Heap Buffer Overflow (Read) 影响模块: in the Shapefile input plugin 触发条件: Parsing malformed input leads to a SIGABRT/Crash due to memory access beyond allocated heap buffer 影响环境 操作系统: Linux x86_64 编译器: Clang/GCC with AddressSanitizer ( ) 构建配置: Release Mode ( ), Static Plugins Linking 受影响版本: master branch 漏洞细节 崩溃类型: Heap-buffer-overflow (Read of size 112) 源文件: plugins/input/shape/dbfile.cpp 问题函数: mapnik::dbf_file::string_value 根本原因分析: - 读取了超出内存区域112字节的数据 - 内存区域最初在 function (size 326 bytes)中分配 - 尝试读取文件头的长度或偏移量未得到有效边界检查 如何复现 1. 用Release optimization ( ) 和 ASAN编译Mapnik 2. 编译并启用AddressSanitizer的Mapnik harness ( ) 3. 使用崩溃文件进行测试 ASAN 报告(正文部分)