CVE-2026-44638libsixel在1.8.7-r1及之前的版本中存在空指针解引用漏洞。在`sixel_decode_raw`和`sixel_decode`函数中,分配内存后代码错误地检查了输出参数的地址而非malloc返回的值。当内存分配失败时,程序会尝试向空指针写入数据,导致进程崩溃。攻击者可利用此漏洞在低内存条件下造成拒绝服务。
该漏洞存在于libsixel库的`sixel_decode_raw`和`sixel_decode`函数中。正常的逻辑应在调用`malloc`后检查返回的指针是否为NULL,以处理内存分配失败的情况。然而,受影响的版本错误地检查了传递给函数的输出参数指针本身的地址(例如检查`&output`而不是`output`),该地址永远不为NULL。因此,当系统处于低内存状态导致`malloc`返回NULL时,校验逻辑失效,程序继续执行后续代码并尝试通过NULL指针进行写入操作。这将导致SIGSEGV信号,引发程序崩溃。由于CVSS向量为AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L,该漏洞属于本地低危漏洞,主要影响可用性。