CVE-2026-47714
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 1 - wyżej niż 1% wszystkich znanych CVE
Streszczenie
W bibliotece libheif w wersjach do 1.21.2 występuje przepełnienie liczb całkowitych podczas przetwarzania maski inline w plikach HEIF. Iloczyn szerokości i wysokości może przekroczyć maksymalną wartość dla 32-bitowej liczby bez znaku, co prowadzi do alokacji zbyt małego bufora i odczytu poza jego granicami. Problem został naprawiony w wersji 1.22.0.
Ocena ryzyka
Atakujący może zdalnie spowodować awarię aplikacji lub potencjalnie wykonać dowolny kod poprzez dostarczenie specjalnie spreparowanego pliku HEIF/AVIF.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę libheif do wersji 1.22.0 lub nowszej.
Inne podatności w libheif
Zobacz wszystkie- CVE-2026-62377Średnie
Podatność w libheif (wersje do 1.23.0) pozwala na crash aplikacji przez specjalnie spreparowaną sekwencję HEIF, która nie rejestruje ścieżek śledzenia, co prowadzi do asercji lub niezdefiniowanego zachowania przy wywołaniu heif_context_get_track.
- CVE-2026-62292Wysokie
Podatność w bibliotece libheif (wersje 1.19.0 do 1.23.1) powodująca awarię aplikacji podczas dekodowania specjalnie spreparowanego obrazu HEIF z kompresją zlib. Błąd w obliczaniu offsetu prowadzi do odczytu poza zakresem i crasha.
- CVE-2026-62291Średnie
Podatność w libheif (wersje do 1.23.0) pozwala na uszkodzenie pamięci (heap corruption) przez spreparowaną sekwencję obrazów z niezgodnymi wymiarami płaszczyzn alfa, co prowadzi do zapisu poza zakresem podczas kodowania.
- CVE-2026-62289Średnie
Podatność w libheif (wersje do 1.23.0) pozwala na crash lub uszkodzenie wyników tiling przez spreparowany plik HEIF/AVIF z polem clean aperture, które redukuje wymiary do zera, powodując niedomiar i asercję lub błędne wyniki.
- CVE-2026-50142Wysokie
libheif w wersjach od 1.19.0 do 1.23.0 zawiera podatność na niekontrolowaną alokację pamięci w przypadku specjalnie spreparowanego pliku HEIF z sekwencją msf1. W Box_stsz::parse() limit max_sequence_frames jest stosowany tylko do próbek o zmiennym rozmiarze, a w Track::load() arytmetyka 32-bitowa może prowadzić do obejścia kontroli spójności. Może to spowodować alokację gigabajtów pamięci, co prowadzi do awarii lub zawieszenia procesu.
- CVE-2026-48029Wysokie
Biblioteka libheif w wersjach od 1.19.0 do 1.21.2 zawiera podatność polegającą na odczycie poza zakresem sterty (heap OOB read) w funkcji ImageItem_Grid::decode_grid_tile, spowodowaną niedomiarem współrzędnych kafelka wywołanym przez irot. Wersja 1.22.0 zawiera poprawkę.
- CVE-2026-47709Średnie
Podatność w bibliotece libheif przed wersją 1.22.0. Podczas dekodowania złośliwego pliku HEIF bez właściwości `ispe` (ale z `uncC`) dochodzi do crasha w funkcji `heif_image_handle_get_image_tiling()` – w debug buildzie przez asercję, w release/ASan przez odczyt null pointera.
- CVE-2026-47254Średnie
Podatność w libheif przed wersją 1.22.0 powoduje przepełnienie bufora sterty podczas odczytu plików HEIF/AVIF. Funkcja Track::init_sample_timing_table() zapisuje nieprawidłowy indeks fragmentu, co prowadzi do odczytu poza zakresem.
- CVE-2026-47251Średnie
Podatność w libheif przed wersją 1.22.0. Łatka dla CVE-2026-3949 wprowadziła przepełnienie liczb całkowitych w sprawdzeniu bezpieczeństwa, co pozwala na ominięcie zabezpieczenia i wywołanie odczytu poza stertą (out-of-bounds heap read) przez spreparowany plik HEIF z ścieżką VVC.
- CVE-2026-47247Wysokie
Dwa błędy w bibliotece libheif przed wersją 1.22.0 umożliwiają wyciek pamięci sterty jako widoczne wartości pikseli w zdekodowanych obrazach siatki. Atakujący przesyłający spreparowany plik AVIF/HEIC do serwerowego procesora obrazów (WordPress, Sharp/libvips, ImageMagick itp.) może odzyskać dane sterty, w tym wskaźniki funkcji bibliotecznych wystarczające do pokonania ASLR, z publicznie dostępnego wyjścia JPEG/PNG/WebP.
Oryginalny opis (angielski, źródło NVD)
libheif is a HEIF and AVIF file format decoder and encoder. In versions 1.21.2 and prior, the inline mask parsing code in `libheif/region.cc` contains an integer overflow. Both `width` and `height` are `unsigned int` (32-bit) values parsed from the HEIF file. Their product can exceed `UINT32_MAX`, wrapping to a small value before the division by 8. This causes an undersized buffer allocation, leading to out-of-bounds memory access when the mask data is later interpreted as a `width x height` bitmap. Version 1.22.0 patches the issue.

