libheif: unbounded heap allocation in HEIF sequence parser (stsz fixed-size mode missing bound check)
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| strukturag | libheif | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Struktur | Libheif |
|
| Source | ID | Title |
|---|---|---|
Ubuntu USN |
USN-8526-1 | libheif vulnerabilities |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.655% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Struktur
Struktur libheif |
|
| Vendors & Products |
Struktur
Struktur libheif |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.0, a crafted HEIF sequence accepted by heif_context_read_from_memory() with the msf1 sequence brand can cause unbounded heap allocation. In libheif/sequences/seq_boxes.cc, Box_stsz::parse() applies max_sequence_frames only to variable-size samples, so fixed-size mode accepts an attacker-controlled sample_count without a bound. In libheif/sequences/track.cc, Track::load() also adds current_sample_idx and samples_per_chunk in 32-bit arithmetic, allowing the consistency check to be bypassed by wraparound. The resulting values reach the Chunk::Chunk() allocation path, which can consume gigabytes of memory and crash or stall the process through memory exhaustion. This issue is fixed in version 1.23.0. | |
| Title | libheif: unbounded heap allocation in HEIF sequence parser (stsz fixed-size mode missing bound check) | |
| Weaknesses | CWE-190 CWE-770 |
|
| References |
| |
| Metrics |
cvssV3_1
|