Skip to content

Releases: saitoha/libsixel

v1.8.7 security update

31 Aug 08:28

Choose a tag to compare

First, my apologies for letting the project stagnate for so long, and my thanks to everyone on the libsixel/libsixel project who continued to deliver security fixes and improvements during my absence.

This repository (saitoha/libsixel) does not yet incorporate everything from libsixel/libsixel. In particular, I am still evaluating whether to adopt Meson for the build system. Reasons include: I currently have no Meson expertise; importing it as-is would eliminate a large number of #ifdefs and likely reduce portability; and I am considering a future port to OpenVMS. I know many people dislike GNU Autotools, so I will keep revisiting the build system choice. The slow ./configure on Windows is a major pain point, but predefining CONFIG_SITE should mitigate it substantially.

On security fixes, my understanding is that the majority are already addressed. A summary of overall progress appears further below in this post. We deferred CVE-2021-46700 (#158), which we have not been able to reproduce, as well as certain Dependabot alerts that appear to have limited impact, for a later release.

📢 What's New in libsixel-1.8.7

  • fix invalid pointer access in encoder.c (#193, #195)
    Thanks to @momo-trip, @akinomyoga

  • fix wrong HLS to RGB conversion. (#191)
    Thanks to @gnachman, @j4james

  • fix NULL pointer dereference problem in img2sixel.c (#192)
    Thanks to @momo-trip, @akinomyoga

  • fix double free problem in encoder.c (#194)
    Thanks to @momo-trip

  • Serucity fix for #200, heap buffer overflow in debug palette function.
    Thanks to @err2zero

  • add EXTRA_DIST for LICENSE files (#129)
    Thanks to @ttdoda

  • Travis-ci: added support for ppc64le (#140)
    Thanks to @dthadi3

  • export sixel_allocator_new to dll (#151)
    Thanks to @johnnychen94

  • README: Add Idris 2 language bindings (#155)
    Thanks to @Kaiepi

  • performance: If width and height are unchanged, nothing to do. (#170)
    Thanks to @rokuyama

  • README: add MacPorts to install options (#183)
    Thanks to @barracuda156

  • fix for bash completion (#189)
    Thanks to @rcorre

  • Add backport feature (nanosleep) for windows, github actions CI (#202)
    Thanks to @Kreijstal

  • README: update NixOS link (#204)
    Thanks to @max-amb

  • build: Remove override of $LIBJPEG_CFLAGS and $LIBJPEG_LIBS set by PKG_CHECK_MODULES()

  • fix Problems with the dithering palette calculation (#188)
    Thanks to @gnachman, @j4james

  • fix SEGV error in sixel_encoder_setopt (#174)
    Thanks to @shinibufa , @j4james

  • curl: send original UserAgent header: "libsixel/${LIBSIXEL_VERSION}"

  • fix heap-buffer-overflow in error_diffuse, quant.c:876 #172
    Thanks to @waugustus

  • fix Heap-buffer-overflow in scale.c:214 #179
    Thanks to @chameleon10712, @j4james

  • build: fallback support for environments without pkg-config.

  • fix double-free problem in loader.c (#150)
    Thanks to @duytai, @ctrlcctrlv

  • fix an assertion issue in stbi__create_png_image_raw (#163)
    Thanks to @kdsjZh, @dankamongmen

  • Update stb_image.h from upstream to version 2.30
    THanks to @hzeller

  • Update examples/drawing: add SGR-Pixels mode

  • fix a problem on monochromatic encoded (-e) output (#112)
    Thanks to @interkosmos, @j4james

  • fix a FPE issue (#166, #167)
    Thanks to @waugustus, @j4james

  • cli: fix a scaling issue introduced in v1.6.1, which is caused
    when one of -w/-h is a percentage and the other is unset or "auto"

  • fix a memory leak ploblem (#164)
    Thanks to @muetzenmann, @j4james

🛡️ libsixel Security Overview (CVE + Dependabot)

All CVEs reported for libsixel (2018–2025, including stb_image leftovers)

CVE Short Description Fix Status (S = saitoha/libsixel / L = libsixel/libsixel fork) S: Issues / PRs L: Issues / PRs Debian / Downstream Status Notes
CVE-2025-9300 (NVD) img2sixel: sixel_debug_print_palette stack/heap boundary error S: ✅ fixed (316c086) Issues: #200 Vulnerable (no DSA) New in 2025; S fixed on master via #200 / 316c086; L archived.
CVE-2023-45661 (NVD) stb_image: OOB memcpy read in stbi__gif_load_next (GIF) S: ✅ Not Affected (stb ≥2.30 (vendored)) Vulnerable (libstb) libsixel provides its own gif_load_next() and we have verified it is unaffected; historically, when stb_image.h lacked animated gif support, we moved the gif loader to src/fromgif.c and have maintained it independently.
CVE-2023-43898 (NVD) stb_image: NULL deref in stbi__convert_format (PICT) S: ✅ fixed (stb 2.28) Vulnerable (libstb)
CVE-2022-29978 (NVD) FPE in sixel_encoder_do_resize S: ✅ fixed (07ab235) / L: 🟡 in progress Issues: #166, #167 Issues: #60, #61, #63 Vulnerable (postponed/No-DSA) Debian postponed.
CVE-2022-29977 (NVD) Assertion failure in stb JPEG huffman decode (stb_image) S: ✅ fixed (1c58a6e) / L: ✅ fixed (138b4ee) Issues: #165, #159 Issues: #62 / PRs: #83 Vulnerable (postponed/No-DSA) Debian postponed; L has #63.
CVE-2022-28042 (NVD) stb_image: heap use-after-free in stbi__jpeg_huff_decode (v2.27) S: ✅ fixed (stb 2.28) Vulnerable (libstb)
CVE-2022-28041 (NVD) stb_image: integer overflow in stbi__jpeg_decode_block_prog_dc (v2.27) S: ✅ fixed (stb 2.28.) Vulnerable (libstb)
CVE-2022-27046 (NVD) Use-after-free in dither.c:388 S: ✅ fixed (98189b8) / L: ✅ fixed (d299d67) Issues: #157 Issues: #27 / PRs: #28 Fixed (bookworm+) Fixed in L via #28; Debian fixed in bookworm+.
CVE-2022-27044 (NVD) Buffer overflow in quant.c S: ✅ fixed (39c2de0) / L: ✅ fixed (dc96cdc) Issues: #172 Issues: #25 / PRs: #26 Fixed (bookworm+) Debian marks fixed; L fixed in 1.10.x.
CVE-2021-46700 (NVD) Double-free in sixel_encoder_output_without_macro S: 🟡 can not reproduced in our side Issues: #158 Vulnerable (no DSA)
CVE-2021-45340 (NVD) stb_image: NULL deref (PICT) S: ✅ fixed (stb 2.26) (1c58a6e) / L: ✅ fixed (138b4ee) Issues: #160 Issues: #73, #51 / PRs: #52 Vulnerable (ignored) Handled historically via stb bump to 2.26 in L.
CVE-2021-41715 (NVD) Use-after-free in dither.c:379 S: ✅ fixed (98189b8) / L: ✅ fixed (d299d67) Issues: #157 Issues: #27 / PRs: #28 Fixed (bookworm+) Fixed in libsixel/libsixel (archived 2025-02-12); backport to S as needed
CVE-2021-40656 (NVD) Buffer overflow in quant.c:867 (<1.10) S: ✅ fixed (39c2de0) / L: ✅ fixed (dc96cdc) Issues: #156, #172 Issues: #25 Fixed (bookworm+)
**CVE-...
Read more

libsixel Nightly

30 Aug 07:29

Choose a tag to compare

libsixel Nightly Pre-release
Pre-release

Nightly from multiple branches/OS. Generated on 2025-12-04T02:09:55Z (UTC)

v1.8.6 build fixes

13 Jan 17:57

Choose a tag to compare

  • python: Fix broken python interface problem(#128), reported by @fd00.
  • build: Introduce VPATH build support(#56), suggested by @tkelman.

v1.8.5 security update

03 Jan 00:50

Choose a tag to compare

For more details, see below summary of vulnerabilities.

No. assigned CVE PR patch status fixed on comment
#67 CVE-2018-14072 CVE-2018-14073 - f94bc6f 84ed0bc resolved v1.8.2
#68 - - 6a19d99 94a647c resolved v1.8.2
#69 - - 0d70e04 resolved v1.8.2
#70 - - 438188c resolved v1.8.2
#71 - - 01c0bad ba21bb9 resolved v1.8.2
#72 - - 570d6ae released v1.8.3
#73 - - cb373ab 26ac06f resolved v1.8.4
#74 - - 0b1e0b3 resolved v1.8.5
#75 - - 7808a06 resolved v1.8.3
#76 - - e3a4c0e 3c071b9 d7b2600 197d025 partially resolved partially fixed on v1.8.3
#77 CVE-2018-19759 #98 5f64fb1 resolved v1.8.3
#78 CVE-2018-19761 (#106) (1377517) resolved v1.8.3 *same as #105
#79 CVE-2018-19757 #91 #94 e903c93 a53c872 resolved v1.8.3
#80 CVE-2018-19756 #93 d6e34fc resolved v1.8.3
#81 CVE-2018-19762 #92 9861272 resolved v1.8.3
#82 CVE-2018-19763 #95 614e761 resolved v1.8.3
#83 CVE-2019-3573 CVE-2019-3574 #99 9c013f2 68ecbc1 resolved v1.8.3
#85 CVE-2019-11024 - b418f35 resolved v1.8.4
#88 - - 7808a06 resolved v1.8.3
#89 - - a516125 resolved v1.8.4
#90 - - (1377517) resolved v1.8.3 *same as #105
#97 - - (1377517) resolved v1.8.3 *same as #105
#102 CVE-2019-19638 #106 e17c076 resolved v1.8.3
#103 CVE-2019-19635 #106 1377517 resolved v1.8.3
#104 CVE-2019-19636 #106 bf46a7b resolved v1.8.3
#105 CVE-2019-19637 #106 1377517 resolved v1.8.3
#107 - - 1d35033 resolved v1.8.4
#108 (CVE-2019-19638) (#106) (e17c076) resolved v1.8.3 *same as #102
#109 CVE-2019-19777 (#93) (d6e34fc) resolved v1.8.3 *same as #80
#110 CVE-2019-19778 (#95) (614e761) resolved v1.8.3 *same as #82
#111 - (#106) (1377517) resolved v1.8.3 *same as #105
#113 - (#93) (aac1df6) resolved v1.8.3 *same as #80
#114 - - (9d0a7ff) resolved v1.8.4 *same as #116
#116 - - 9d0a7ff resolved v1.8.4
#117 CVE-2019-20023 - b9a4175 resolved v1.8.5
#118 - - 6367d2f resolved v1.8.4
#119 (CVE-2019-20023) - b9a4175 resolved 1.8.5 *same as #117
#120 (CVE-2019-20023) - b9a4175 resolved 1.8.5 *same as #117
#121 - (6367d2f) resolved v1.8.4 *same as #118
#122 - 598c8c8 resolved v1.8.5
#123 - (0b1e0b3) resolved v1.8.5 *same as #74
#124 - c1ef812 resolved v1.8.5
#125 CVE-2019-20094 a18b378 resolved v1.8.5
#126 CVE-2019-20096 814f831 resolved v1.8.5
#127 CVE-2019-20095 5543354 resolved v1.8.5

v1.8.4 security update

18 Dec 20:29

Choose a tag to compare

For more details, see below summary of vulnerabilities.

No. assigned CVE PR patch status fixed on comment
#67 CVE-2018-14072 CVE-2018-14073 - f94bc6f 84ed0bc resolved v1.8.2
#68 - - 6a19d99 94a647c resolved v1.8.2
#69 - - 0d70e04 resolved v1.8.2
#70 - - 438188c resolved v1.8.2
#71 - - 01c0bad ba21bb9 resolved v1.8.2
#72 - - 570d6ae released v1.8.3
#73 - - cb373ab 26ac06f resolved v1.8.4
#74 - - - not resolved -
#75 - - 7808a06 resolved v1.8.3
#76 - - e3a4c0e 3c071b9 d7b2600 197d025 partially resolved partially fixed on v1.8.3
#77 CVE-2018-19759 #98 5f64fb1 resolved v1.8.3
#78 CVE-2018-19761 (#106) (1377517) resolved v1.8.3 *same as #105
#79 CVE-2018-19757 #91 #94 e903c93 a53c872 resolved v1.8.3
#80 CVE-2018-19756 #93 d6e34fc resolved v1.8.3
#81 CVE-2018-19762 #92 9861272 resolved v1.8.3
#82 CVE-2018-19763 #95 614e761 resolved v1.8.3
#83 CVE-2019-3573 CVE-2019-3574 #99 9c013f2 68ecbc1 resolved v1.8.3
#85 CVE-2019-11024 - b418f35 resolved v1.8.4
#88 - - 7808a06 resolved v1.8.3
#89 - - a516125 resolved v1.8.4
#90 - - (1377517) resolved v1.8.3 *same as #105
#97 - - (1377517) resolved v1.8.3 *same as #105
#102 CVE-2019-19638 #106 e17c076 resolved v1.8.3
#103 CVE-2019-19635 #106 1377517 resolved v1.8.3
#104 CVE-2019-19636 #106 bf46a7b resolved v1.8.3
#105 CVE-2019-19637 #106 1377517 resolved v1.8.3
#107 - - 1d35033 resolved v1.8.4
#108 (CVE-2019-19638) (#106) (e17c076) resolved v1.8.3 *same as #102
#109 CVE-2019-19777 (#93) (d6e34fc) resolved v1.8.3 *same as #80
#110 CVE-2019-19778 (#95) (614e761) resolved v1.8.3 *same as #82
#111 - (#106) (1377517) resolved v1.8.3 *same as #105
#113 - (#93) (aac1df6) resolved v1.8.3 *same as #80
#114 - - (9d0a7ff) resolved v1.8.4 *same as #116
#116 - - 9d0a7ff resolved v1.8.4
#117 - - b9a4175 patched -
#118 - - 6367d2f resolved v1.8.4
#119 - - b9a4175 patched - *same as #117
#120 - - b9a4175 patched - *same as #117
#121 - (6367d2f) resolved v1.8.4 *same as

Security fix release

14 Dec 21:02

Choose a tag to compare

v1.8.2

22 Jul 17:40

Choose a tag to compare

This release provides some security updates.

libsixel-1.8.1 Bug-fix release

09 Jun 18:06

Choose a tag to compare

v1.8.1 includes an important bug fix.
600f122

libsixel-1.8 released

07 Jun 12:29

Choose a tag to compare

              ------------------------------
               What's new in libsixel-1.8 ?
              ------------------------------

v1.7.3

02 Jun 10:31

Choose a tag to compare

We additionally provide immutable tarball:
https://github.com/saitoha/libsixel/releases/download/v1.7.3/libsixel-1.7.3.tar.gz

According to Issue #64, GitHub auto-generated tarball(https://github.com/saitoha/libsixel/archive/v1.7.3.tar.gz) may be not immutable.