Podatność w bibliotece libaom (implementacja kodeka AV1) polega na przepełnieniu liczby całkowitej (integer overflow) w wewnętrznej funkcji img_alloc_helper, co może prowadzić do przepełnienia bufora na stercie (heap buffer overflow). Błąd otrzymał maksymalną ocenę CVSS 10.0, co oznacza krytyczne zagrożenie dla wszystkich systemów korzystających z tej biblioteki.
▸ Pokaż oryginał (EN)
Integer overflow in libaom internal function img_alloc_helper can lead to heap buffer overflow. This function can be reached via 3 callers: * Calling aom_img_alloc() with a large value of the d_w, d_h, or align parameter may result in integer overflows in the calculations of buffer sizes and offsets and some fields of the returned aom_image_t struct may be invalid. * Calling aom_img_wrap() with a large value of the d_w, d_h, or align parameter may result in integer overflows in the calculations of buffer sizes and offsets and some fields of the returned aom_image_t struct may be invalid. * Calling aom_img_alloc_with_border() with a large value of the d_w, d_h, align, size_align, or border parameter may result in integer overflows in the calculations of buffer sizes and offsets and some fields of the returned aom_image_t struct may be invalid.
Podatność jest wyzwalana poprzez wywołanie jednej z trzech funkcji publicznych biblioteki: aom_img_alloc(), aom_img_wrap() lub aom_img_alloc_with_border() z nadmiernie dużą wartością parametrów takich jak d_w, d_h, align, size_align lub border. Przekazanie takich wartości powoduje przepełnienie liczby całkowitej podczas obliczeń rozmiarów buforów oraz przesunięć (offsets), a niektóre pola zwracanej struktury aom_image_t przyjmują nieprawidłowe wartości. W konsekwencji dochodzi do zapisu poza granicami zaalokowanego bufora na stercie (heap buffer overflow).
Atakujący może doprowadzić do wykonania dowolnego kodu (RCE) lub destabilizacji aplikacji korzystającej z biblioteki libaom, w tym potencjalnie przejąć kontrolę nad systemem ofiary. Ze względu na brak wymagań dotyczących uwierzytelnienia i interakcji użytkownika, podatność jest szczególnie niebezpieczna w aplikacjach przetwarzających zewnętrzne pliki wideo lub strumieniowe dane AV1.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Użytkownicy dystrybucji Fedora i Debian powinni niezwłocznie zaktualizować pakiet libaom do wersji udostępnionej przez opiekunów dystrybucji (szczegóły w listach fedora-package-announce oraz debian-lts-announce).
Biblioteka Aomedia libaom — wersje wskazane w referencjach producenta oraz pakiety dystrybucyjne Fedora i Debian (zgodnie z opublikowanymi ogłoszeniami bezpieczeństwa).
Podatność była śledzona w systemie Chromium Issue Tracker (https://issues.chromium.org/issues/332382766), co sugeruje potencjalny wpływ na przeglądarki oraz inne produkty korzystające z libaom do dekodowania AV1.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XAomedia Libaom
APPAomedia1.0.0 – 3.9.0
Powiązane podatności
Heap overflow w bibliotece AOM podczas zmiany rozdzielczości w wielowątkowym encode
aom_dsp/noise_model.c in libaom in AOMedia before 2021-03-24 has a buffer overflow.
aom_dsp/grain_table.c in libaom in AOMedia before 2021-03-30 has a use-after-free.
aom_image.c in libaom in AOMedia before 2021-04-07 frees memory that is not located on the heap.
AOMedia v3.0.0 to v3.5.0 was discovered to contain an invalid read memory access via the component assign_fram...