CVE-2026-47254
Full vulnerability record from the local CVENow database.
Description
libheif is a HEIF and AVIF file format decoder and encoder. Prior to version 1.22.0, `Track::init_sample_timing_table()` in `libheif/sequences/track.cc` stores an out-of-bounds chunk index (`m_chunks.size()`) into `m_presentation_timeline` when the number of chunks defined in the `stco` box is less than the number of samples in `stsz`. A subsequent call to `heif_track_get_next_raw_sequence_sample()` reads `m_chunks[chunk_idx]` with that OOB index, causing a heap-buffer-overflow. Version 1.22.0 fixes the issue.
Severity
MEDIUM
CVSS score
6.1
(v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-07-21 22:17:12.957000
Last modified
2026-10-24 19:10:00.127000
View original CVE JSON
{
"id": "CVE-2026-47254",
"sourceIdentifier": "[email protected]",
"published": "2026-07-21T22:17:12.957",
"lastModified": "2026-10-24T19:10:00.127",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "libheif is a HEIF and AVIF file format decoder and encoder. Prior to version 1.22.0, `Track::init_sample_timing_table()` in `libheif/sequences/track.cc` stores an out-of-bounds chunk index (`m_chunks.size()`) into `m_presentation_timeline` when the number of chunks defined in the `stco` box is less than the number of samples in `stsz`. A subsequent call to `heif_track_get_next_raw_sequence_sample()` reads `m_chunks[chunk_idx]` with that OOB index, causing a heap-buffer-overflow. Version 1.22.0 fixes the issue."
},
{
"lang": "es",
"value": "libheif es un decodificador y codificador de formato de archivo HEIF y AVIF. Antes de la versión 1.22.0, ’Track::init_sample_timing_table()’ en ’libheif/sequences/track.cc’ almacena un índice de fragmento fuera de límites (’m_chunks.size()’) en ’m_presentation_timeline’ cuando el número de fragmentos definido en la caja ’stco’ es menor que el número de muestras en ’stsz’. Una llamada posterior a ’heif_track_get_next_raw_sequence_sample()’ lee ’m_chunks[chunk_idx]’ con ese índice OOB, causando un desbordamiento de búfer de pila. La versión 1.22.0 corrige el problema."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "strukturag",
"product": "libheif",
"versions": [
{
"version": "< 1.22.0",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H",
"baseScore": 6.1,
"baseSeverity": "MEDIUM",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "NONE",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 1.8,
"impactScore": 4.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-22T18:20:13.158321Z",
"id": "CVE-2026-47254",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-125"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:struktur:libheif:*:*:*:*:*:*:*:*",
"versionEndExcluding": "1.22.0",
"matchCriteriaId": "CB01CAAF-1D64-461B-8CC0-3CF2FBAC60A5"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/strukturag/libheif/security/advisories/GHSA-wqjg-4x9g-6cvg",
"source": "[email protected]",
"tags": [
"Exploit",
"Mitigation",
"Vendor Advisory"
]
}
]
}