关键信息总结 漏洞概述 漏洞类型: 堆缓冲区溢出 (Heap Buffer Overflow) 受影响组件: LibSixel - img2sixel 转换器 受影响函数: 源文件: window.c 行号: 735 信号: SIGABRT (6) of size: 1 内存访问: 0x000000000000 受影响内存范围: 16-byte heap region with out-of-bounds access 机制和根本原因 分配阶段: 分配一个16字节的区域用于调色板数据。 处理阶段: 在 中准备和处理调色板信息。 调试输出阶段: 尝试访问超出边界的数据。 缓冲区溢出: 函数读取了分配的16字节区域之外的数据。 内存损坏: 触发AddressSanitizer检测到堆缓冲区溢出。 地址Sanitizer报告 提供了详细的内存访问和崩溃信息,确认了堆缓冲区溢出的位置和上下文。 概念验证 (PoC) 提供了一个恶意格式化的图像文件,可以触发漏洞。 PoC下载链接: POC_img2sixel_heap_buffer_overflow 影响版本 LibSixel 版本 1.0.3 (commit: 09045c8) 及更新版本。 复现步骤 1. 下载并编译LibSixel。 2. 使用提供的PoC文件运行img2sixel命令。 3. 程序将在调试调色板函数时因堆缓冲区溢出错误而崩溃。 解决状态 已修复并在测试目录中添加了PoC文件以进行回归测试。