CVE-2026-33019 (GCVE-0-2026-33019)
Vulnerability from cvelistv5 – Published: 2026-04-14 21:49 – Updated: 2026-04-15 20:02
VLAI
EPSS
VEX
Title
libsixel: Integer overflow leads to Out-of-bounds Read in img2sixel
Summary
libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. Versions 1.8.7 and prior contain an integer overflow leading to an out-of-bounds heap read in the --crop option handling of img2sixel, where positive coordinates up to INT_MAX are accepted without overflow-safe bounds checking. In sixel_encoder_do_clip(), the expression clip_w + clip_x overflows to a large negative value when clip_x is INT_MAX, causing the bounds guard to be skipped entirely, and the unclamped coordinate is passed through sixel_frame_clip() to clip(), which computes a source pointer far beyond the image buffer and passes it to memmove(). An attacker supplying a specially crafted crop argument with any valid image can trigger an out-of-bounds read in the heap, resulting in a reliable crash and potential information disclosure. This issue has been fixed in version 1.8.7-r1.
Severity
7.1 (High)
SSVC
Exploitation: poc
Automatable: no
Technical Impact: partial
CISA Coordinator (v2.0.3)
Assigner
References
2 references
| URL | Tags |
|---|---|
| https://github.com/saitoha/libsixel/security/advi… | x_refsource_CONFIRM |
| https://github.com/saitoha/libsixel/releases/tag/… | x_refsource_MISC |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-33019",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-04-15T18:54:19.432280Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-04-15T20:02:46.628Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "libsixel",
"vendor": "saitoha",
"versions": [
{
"status": "affected",
"version": "\u003c 1.8.7-r1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "libsixel is a SIXEL encoder/decoder implementation derived from kmiya\u0027s sixel. Versions 1.8.7 and prior contain an integer overflow leading to an out-of-bounds heap read in the --crop option handling of img2sixel, where positive coordinates up to INT_MAX are accepted without overflow-safe bounds checking. In sixel_encoder_do_clip(), the expression clip_w + clip_x overflows to a large negative value when clip_x is INT_MAX, causing the bounds guard to be skipped entirely, and the unclamped coordinate is passed through sixel_frame_clip() to clip(), which computes a source pointer far beyond the image buffer and passes it to memmove(). An attacker supplying a specially crafted crop argument with any valid image can trigger an out-of-bounds read in the heap, resulting in a reliable crash and potential information disclosure. This issue has been fixed in version 1.8.7-r1."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 7.1,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-125",
"description": "CWE-125: Out-of-bounds Read",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-190",
"description": "CWE-190: Integer Overflow or Wraparound",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-04-14T21:49:25.204Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c"
},
{
"name": "https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1"
}
],
"source": {
"advisory": "GHSA-c854-ffg9-g72c",
"discovery": "UNKNOWN"
},
"title": "libsixel: Integer overflow leads to Out-of-bounds Read in img2sixel"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-33019",
"datePublished": "2026-04-14T21:49:25.204Z",
"dateReserved": "2026-03-17T17:22:14.667Z",
"dateUpdated": "2026-04-15T20:02:46.628Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-33019",
"date": "2026-08-03",
"epss": "0.00256",
"percentile": "0.1719"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-33019\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-04-14T22:16:30.380\",\"lastModified\":\"2026-07-25T10:10:00.167\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"libsixel is a SIXEL encoder/decoder implementation derived from kmiya\u0027s sixel. Versions 1.8.7 and prior contain an integer overflow leading to an out-of-bounds heap read in the --crop option handling of img2sixel, where positive coordinates up to INT_MAX are accepted without overflow-safe bounds checking. In sixel_encoder_do_clip(), the expression clip_w + clip_x overflows to a large negative value when clip_x is INT_MAX, causing the bounds guard to be skipped entirely, and the unclamped coordinate is passed through sixel_frame_clip() to clip(), which computes a source pointer far beyond the image buffer and passes it to memmove(). An attacker supplying a specially crafted crop argument with any valid image can trigger an out-of-bounds read in the heap, resulting in a reliable crash and potential information disclosure. This issue has been fixed in version 1.8.7-r1.\"},{\"lang\":\"es\",\"value\":\"libsixel es una implementaci\u00f3n de codificador/decodificador SIXEL derivada de sixel de kmiya. Las versiones 1.8.7 y anteriores contienen un desbordamiento de entero que conduce a una lectura fuera de l\u00edmites en el heap en el manejo de la opci\u00f3n \u0027--crop\u0027 de img2sixel, donde se aceptan coordenadas positivas hasta INT_MAX sin verificaci\u00f3n de l\u00edmites segura contra desbordamientos. En sixel_encoder_do_clip(), la expresi\u00f3n clip_w + clip_x desborda a un valor negativo grande cuando clip_x es INT_MAX, haciendo que la protecci\u00f3n de l\u00edmites se omita por completo, y la coordenada no restringida se pasa a trav\u00e9s de sixel_frame_clip() a clip(), que calcula un puntero de origen mucho m\u00e1s all\u00e1 del b\u00fafer de imagen y lo pasa a memmove(). Un atacante que proporciona un argumento de recorte (\u0027crop\u0027) especialmente dise\u00f1ado con cualquier imagen v\u00e1lida puede desencadenar una lectura fuera de l\u00edmites en el heap, lo que resulta en un fallo (\u0027crash\u0027) fiable y una potencial revelaci\u00f3n de informaci\u00f3n. Este problema ha sido solucionado en la versi\u00f3n 1.8.7-r1.\"}],\"affected\":[{\"source\":\"security-advisories@github.com\",\"affectedData\":[{\"vendor\":\"saitoha\",\"product\":\"libsixel\",\"versions\":[{\"version\":\"\u003c 1.8.7-r1\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H\",\"baseScore\":7.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"REQUIRED\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.2}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-04-15T18:54:19.432280Z\",\"id\":\"CVE-2026-33019\",\"options\":[{\"exploitation\":\"poc\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-125\"},{\"lang\":\"en\",\"value\":\"CWE-190\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:saitoha:libsixel:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"1.8.7-r1\",\"matchCriteriaId\":\"E16EAA6A-544F-4D16-829D-1B7C9979EA6A\"}]}]}],\"references\":[{\"url\":\"https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Release Notes\"]},{\"url\":\"https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Exploit\",\"Vendor Advisory\"]},{\"url\":\"https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c\",\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"tags\":[\"Exploit\",\"Vendor Advisory\"]}]}}",
"redhat_vex": {
"current_release_date": "2026-06-28T07:29:50+00:00",
"cve": "CVE-2026-33019",
"id": "CVE-2026-33019",
"initial_release_date": "2026-04-14T21:49:25.204000+00:00",
"product_status:known_not_affected": "1",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "libsixel: libsixel: Denial of Service and Information Disclosure via integer overflow in crop option",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33019.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "important",
"current_release_date": "2026-04-15T13:41:23Z",
"cve": "CVE-2026-33019",
"id": "CVE-2026-33019",
"initial_release_date": "2026-04-15T13:41:23Z",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2026-33019",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-33019.json",
"version": "2"
},
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-33019\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-04-15T18:54:19.432280Z\"}}}], \"references\": [{\"url\": \"https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-04-15T18:54:38.859Z\"}}], \"cna\": {\"title\": \"libsixel: Integer overflow leads to Out-of-bounds Read in img2sixel\", \"source\": {\"advisory\": \"GHSA-c854-ffg9-g72c\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.1, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H\", \"integrityImpact\": \"NONE\", \"userInteraction\": \"REQUIRED\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"saitoha\", \"product\": \"libsixel\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 1.8.7-r1\"}]}], \"references\": [{\"url\": \"https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c\", \"name\": \"https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1\", \"name\": \"https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"libsixel is a SIXEL encoder/decoder implementation derived from kmiya\u0027s sixel. Versions 1.8.7 and prior contain an integer overflow leading to an out-of-bounds heap read in the --crop option handling of img2sixel, where positive coordinates up to INT_MAX are accepted without overflow-safe bounds checking. In sixel_encoder_do_clip(), the expression clip_w + clip_x overflows to a large negative value when clip_x is INT_MAX, causing the bounds guard to be skipped entirely, and the unclamped coordinate is passed through sixel_frame_clip() to clip(), which computes a source pointer far beyond the image buffer and passes it to memmove(). An attacker supplying a specially crafted crop argument with any valid image can trigger an out-of-bounds read in the heap, resulting in a reliable crash and potential information disclosure. This issue has been fixed in version 1.8.7-r1.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-125\", \"description\": \"CWE-125: Out-of-bounds Read\"}]}, {\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-190\", \"description\": \"CWE-190: Integer Overflow or Wraparound\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-04-14T21:49:25.204Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-33019\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-04-15T20:02:46.628Z\", \"dateReserved\": \"2026-03-17T17:22:14.667Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-04-14T21:49:25.204Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
Loading…
Loading…