libsixel Use-After-Free Vulnerability in GDK-Pixbuf2 Loader

Vulnerability

A use-after-free vulnerability has been identified in libsixel versions through 1.8.7, when built with GDK-Pixbuf2 support. The issue arises in the 'load_with_gdkpixbuf()' function, where a 'sixel_frame_t' object is created using a reference-counted constructor and then improperly freed without considering the reference count. This flaw can be exploited by an attacker supplying a crafted image, potentially leading to information disclosure, memory corruption, or arbitrary code execution.

Impact

Exploitation of this vulnerability can cause a use-after-free condition, allowing for potential information disclosure, memory corruption, or arbitrary code execution, depending on the heap layout.

Reproduction

To reproduce this vulnerability, compile libsixel with the GDK-Pixbuf2 option. Then, use the 'sixel_helper_load_image_file()' function to load a crafted image file. The 'load_with_gdkpixbuf()' function will create a 'sixel_frame_t' object, which is then freed without properly managing its reference count. After the function returns, any access to the frame object will result in a use-after-free error, as confirmed by AddressSanitizer.

Remediation

Users can upgrade to libsixel version 1.8.7-r1 to address this vulnerability.

Added: Apr 15, 2026, 1:02 AM
Updated: Apr 15, 2026, 1:02 AM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
5.6
exploitability
5.6
remediation
7.7
relevance
5.9
threat
6.4
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.