Vulnerabilities
48 CVEs · NVD, GitHub Advisories, CISA KEV, FIRST EPSS, GitHub PoC repos
| CVE | Vulnerability | CVSS | EPSS | Flags | Affected | Exposure | Published |
|---|---|---|---|---|---|---|---|
| CVE-2026-44636 | libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. From to 1.8.7-r1, signed integer overflow in sixel_encode_highcolor's allocation size calculation can lead to a heap buffer overflow. The public sixel_encode entry point validates only that width and height are greater than zero, with no upper bound. width and height are multiplied as plain int when computing the allocation size for paletted_pixels and normalized_pixels. Any caller that asks libsixel to encode a pixel buffer with width times height greater than INT_MAX (about 2.15 billion) will hit a wrapped allocation size; under the right wrap, the malloc succeeds with a buffer much smaller than the encoder expects, and the encoder writes past the end of the heap allocation. This vulnerability is fixed in 1.8.7-r2. NVD description · AI analysis pending | 7.8 group max | <1% |
| — | ||
| CVE-2026-33023 | libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. In versions 1.8.7 and prior, when built with the --with-gdk-pixbuf2 option, a use-after-free vulnerability exists in load_with_gdkpixbuf() in loader.c. The cleanup path manually frees the sixel_frame_t object and its internal buffers without consulting the reference count, even though the object was created via the refcounted constructor sixel_frame_new() and exposed to the public callback. A callback that calls sixel_frame_ref(frame) to retain a logically valid reference will hold a dangling pointer after sixel_helper_load_image_file() returns, and any subsequent access to the frame or its fields triggers a use-after-free confirmed by AddressSanitizer. The root cause is a consistency failure between two cleanup strategies in the same codebase: sixel_frame_unref() is used in load_with_builtin() but raw free() is used in load_with_gdkpixbuf(). An attacker supplying a crafted image to any application built against libsixel with gdk-pixbuf2 support can trigger this reliably, potentially leading to information disclosure, memory corruption, or code execution. This issue has been fixed in version 1.8.7-r1. NVD description · AI analysis pending | 7.8 group max | <1% | PoC |
| — | |
| CVE-2025-61146 | saitoha libsixel until v1.8.7 was discovered to contain a memory leak via the component malloc_stub.c. saitoha libsixel until v1.8.7 was discovered to contain a memory leak via the component malloc_stub.c. NVD description · AI analysis pending | 4.0 | <1% |
| — | ||
| CVE-2025-9300 | A vulnerability was found in saitoha libsixel up to 1.10.3. A vulnerability was found in saitoha libsixel up to 1.10.3. Affected by this issue is the function sixel_debug_print_palette of the file src/encoder.c of the component img2sixel. The manipulation results in stack-based buffer overflow. The attack must be initiated from a local position. The exploit has been made public and could be used. The patch is identified as 316c086e79d66b62c0c4bc66229ee894e4fdb7d1. Applying a patch is advised to resolve this issue. NVD description · AI analysis pending | 1.9 | <1% | PoC ×4 |
| — | |
| CVE-2022-29978 +1 in the same advisory: …29977 | There is a floating point exception error in sixel_encoder_do_resize, encoder.c:633 in libsixel img2sixel 1.8.6. There is a floating point exception error in sixel_encoder_do_resize, encoder.c:633 in libsixel img2sixel 1.8.6. Remote attackers could leverage this vulnerability to cause a denial-of-service via a crafted JPEG file. NVD description · AI analysis pending | 6.5 | 1% | PoC |
| — | |
| CVE-2022-27046 +1 in the same advisory: …27044 | libsixel 1.8.6 suffers from a Heap Use After Free vulnerability in in libsixel/src/dither.c:388. libsixel 1.8.6 suffers from a Heap Use After Free vulnerability in in libsixel/src/dither.c:388. NVD description · AI analysis pending | 8.8 | 1% | PoC |
| — | |
| CVE-2022-27938 | stb_image.h (aka the stb image loader) 2.19, as used in libsixel and other products, has a reachable assertion in stbi__create_png_image_raw. stb_image.h (aka the stb image loader) 2.19, as used in libsixel and other products, has a reachable assertion in stbi__create_png_image_raw. NVD description · AI analysis pending | 5.5 | <1% | PoC |
| — | |
| CVE-2021-46700 | In libsixel 1.8.6, sixel_encoder_output_without_macro (called from sixel_encoder_encode_frame in encoder.c) has a double free. In libsixel 1.8.6, sixel_encoder_output_without_macro (called from sixel_encoder_encode_frame in encoder.c) has a double free. NVD description · AI analysis pending | 6.5 | <1% | PoC |
| — | |
| CVE-2020-21548 +1 in the same advisory: …21547 | Libsixel 1.8.3 contains a heap-based buffer overflow in the sixel_encode_highcolor function in tosixel.c. Libsixel 1.8.3 contains a heap-based buffer overflow in the sixel_encode_highcolor function in tosixel.c. NVD description · AI analysis pending | 8.8 | 1% | PoC |
| — | |
| CVE-2020-21050 | Libsixel prior to v1.8.3 contains a stack buffer overflow in the function gif_process_raster at fromgif.c. Libsixel prior to v1.8.3 contains a stack buffer overflow in the function gif_process_raster at fromgif.c. NVD description · AI analysis pending | 6.5 | 2% | PoC |
| — | |
| CVE-2020-21677 | A heap-based buffer overflow in the sixel_encoder_output_without_macro function in encoder.c of Libsixel 1.8.4 allows attackers to cause a denial of service (DO A heap-based buffer overflow in the sixel_encoder_output_without_macro function in encoder.c of Libsixel 1.8.4 allows attackers to cause a denial of service (DOS) via converting a crafted PNG file into Sixel format. NVD description · AI analysis pending | 6.5 | <1% | PoC |
| — | |
| CVE-2020-36120 | Buffer Overflow in the "sixel_encoder_encode_bytes" function of Libsixel v1.8.6 allows attackers to cause a Denial of Service (DoS). Buffer Overflow in the "sixel_encoder_encode_bytes" function of Libsixel v1.8.6 allows attackers to cause a Denial of Service (DoS). NVD description · AI analysis pending | 7.5 | 1% | PoC |
| — | |
| CVE-2020-19668 | Unverified indexs into the array lead to out of bound access in the gif_out_code function in fromgif.c in libsixel 1.8.6. Unverified indexs into the array lead to out of bound access in the gif_out_code function in fromgif.c in libsixel 1.8.6. NVD description · AI analysis pending | 6.5 | <1% | PoC |
| — | |
| CVE-2020-11721 | load_png in loader.c in libsixel.a in libsixel 1.8.6 has an uninitialized pointer leading to an invalid call to free, which can cause a denial of service. load_png in loader.c in libsixel.a in libsixel 1.8.6 has an uninitialized pointer leading to an invalid call to free, which can cause a denial of service. NVD description · AI analysis pending | 6.5 | <1% | PoC |
| — | |
| CVE-2019-20205 | libsixel 1.8.4 has an integer overflow in sixel_frame_resize in frame.c. libsixel 1.8.4 has an integer overflow in sixel_frame_resize in frame.c. NVD description · AI analysis pending | 8.8 | 1% | PoC |
| — | |
| CVE-2019-20140 +1 in the same advisory: …20094 | An issue was discovered in libsixel 1.8.4. An issue was discovered in libsixel 1.8.4. There is a heap-based buffer overflow in the function gif_out_code at fromgif.c. NVD description · AI analysis pending | 8.8 | 1% | PoC |
| — | |
| CVE-2019-20024 | A heap-based buffer overflow was discovered in image_buffer_resize in fromsixel.c in libsixel before 1.8.4. A heap-based buffer overflow was discovered in image_buffer_resize in fromsixel.c in libsixel before 1.8.4. NVD description · AI analysis pending | 6.5 | 1% | PoC |
| — | |
| CVE-2019-19778 | An issue was discovered in libsixel 1.8.2. An issue was discovered in libsixel 1.8.2. There is a heap-based buffer over-read in the function load_sixel at loader.c. NVD description · AI analysis pending | 8.8 | 1% | PoC |
| — | |
| CVE-2019-19777 | stb_image.h (aka the stb image loader) 2.23, as used in libsixel and other products, has a heap-based buffer over-read in stbi__load_main. stb_image.h (aka the stb image loader) 2.23, as used in libsixel and other products, has a heap-based buffer over-read in stbi__load_main. NVD description · AI analysis pending | 8.8 | 1% | PoC |
| — | |
| CVE-2019-19637 | An issue was discovered in libsixel 1.8.2. An issue was discovered in libsixel 1.8.2. There is an integer overflow in the function sixel_decode_raw_impl at fromsixel.c. NVD description · AI analysis pending | 9.8 | 1% |
| — | ||
| CVE-2019-11024 | The load_pnm function in frompnm.c in libsixel.a in libsixel 1.8.2 has infinite recursion. The load_pnm function in frompnm.c in libsixel.a in libsixel 1.8.2 has infinite recursion. NVD description · AI analysis pending | 5.5 | <1% | PoC ×2 |
| — | |
| CVE-2019-3574 +1 in the same advisory: …3573 | In libsixel v1.8.2, there is a heap-based buffer over-read in the function load_jpeg() in the file loader.c, as demonstrated by img2sixel. In libsixel v1.8.2, there is a heap-based buffer over-read in the function load_jpeg() in the file loader.c, as demonstrated by img2sixel. NVD description · AI analysis pending | 7.8 group max | 1% | PoC ×2 |
| — | |
| CVE-2018-19762 | There is a heap-based buffer overflow at fromsixel.c (function: There is a heap-based buffer overflow at fromsixel.c (function: image_buffer_resize) in libsixel 1.8.2 that will cause a denial of service or possibly unspecified other impact. NVD description · AI analysis pending | 7.8 group max | <1% | PoC |
| — | |
| CVE-2018-14073 +1 in the same advisory: …14072 | libsixel 1.8.1 has a memory leak in sixel_allocator_new in allocator.c. libsixel 1.8.1 has a memory leak in sixel_allocator_new in allocator.c. NVD description · AI analysis pending | 7.5 | 1% |
| — |