SAIL is a cross-platform library for loading and saving images with support for animation, metadata, and ICC profiles. In 0.9.10 and earlier, the TGA_INDEXED_RLE path selected by image_type == 9 allocates an image buffer using the one-byte-per-pixel SAIL_PIXEL_FORMAT_BPP8_INDEXED format returned by tga_private_sail_pixel_format() in src/sail-codecs/tga/helpers.c, while sail_codec_load_frame_v8_tga() in src/sail-codecs/tga/tga.c derives a two-to-four-byte pixel_size from an attacker-controlled header bpp value from 9 through 32. Loading a crafted color-mapped run-length-encoded TGA through sail_load_from_file() or sail_load_from_memory() therefore writes attacker-controlled bytes beyond the heap pixel buffer. The pixel-count clamp added for CVE-2026-40494 does not constrain the per-pixel write width, so this issue is an incomplete fix of that vulnerability and can cause heap corruption, a reliable crash, or potential code execution. This issue is fixed in version 1.0.0.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-122",
"CWE-787"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54626.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54626.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"203081060056453625017446840195078655746",
"264907075748600123088187908741055249168",
"152317054325265890493347908509331727047",
"305408812690371716271496818391789979575",
"63313665693018534944434585365639026507",
"267906469712749720277673461660378578525",
"66006068939370365507982308022438546234",
"7750929066271793230710168362400721345",
"99908915894153185048523501736454179769",
"214296349349766734680929589307104631608",
"56786190183046133644548343278590173598",
"233271309863654722825049277415350613677",
"220986631308032072739714000990552795184"
],
"threshold": 0.9
},
"id": "CVE-2026-54626-101732cb",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/happyseafox/sail/commit/fa24bceb93958ad665dbc3cf6b49a1079ab12559",
"target": {
"file": "src/sail-codecs/tga/tga.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "23098556256397714419309470804531239173",
"length": 1764
},
"id": "CVE-2026-54626-dab1d008",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/happyseafox/sail/commit/fa24bceb93958ad665dbc3cf6b49a1079ab12559",
"target": {
"file": "src/sail-codecs/tga/tga.c",
"function": "sail_codec_load_frame_v8_tga"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "137443661568885238566133449062019428993",
"length": 2932
},
"id": "CVE-2026-54626-ec27a7bd",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/happyseafox/sail/commit/fa24bceb93958ad665dbc3cf6b49a1079ab12559",
"target": {
"file": "src/sail-codecs/tga/tga.c",
"function": "sail_codec_load_seek_next_frame_v8_tga"
}
}
]
"2026-09-19T08:08:54Z"