Luka w referencyjnych implementacjach kodeków AV1 oraz VP8/VP9

W bibliotece libaom rozwijanej przez sojusz Open Media (AOMedia), która oferuje standardową implementację formatu kodowania wideo AV1, zidentyfikowano krytyczną podatność (CVE-2024-5171), prowadzącą do przepełnienia liczb całkowitych i zapisu poza granicami bufora przy przetwarzaniu zbyt dużych wartości w niektórych parametrach. Podobna podatność (CVE-2024-5197) została zidentyfikowana w bibliotece libvpx, implementującej kodeki VP8 i VP9. Problemy zostały rozwiązane w aktualizacjach libaom 3.9.0 i libvpx 1.14.1. W dystrybucjach podatności nadal pozostają niepoprawione (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD).

Podatności w libaom przyznano maksymalny poziom zagrożenia (10 na 10), co sugeruje możliwość wykorzystania przy przetwarzaniu w aplikacjach korzystających z tej biblioteki specjalnie przygotowanego kontentu. W libvpx poziom zagrożenia oceniono na 5.9 z 10, co odpowiada ograniczonym warunkom wykorzystania. Główne niebezpieczeństwo podatności w libaom i libvpx wynika z tego, że biblioteki te są używane w przeglądarkach internetowych, odtwarzaczach multimedialnych i serwisach przeprowadzających transkodowanie wideo.

Podatność manifestuje się w libaom podczas wywołania funkcji aom_img_alloc(), aom_img_wrap() lub aom_img_alloc_with_border() z dużymi wartościami w parametrach d_w, d_h i align, co prowadzi do przepełnienia liczb całkowitych przy obliczaniu przesunięć i rozmiarów buforów. Podobne przepełnienie występuje w funkcjach vpx_img_alloc() i vpx_img_wrap(). Wspomniane funkcje są używane przy kodowaniu wideo.

Największe niebezpieczeństwo podatności wiąże się z potencjalnymi możliwościami ataku na przeglądarki, w których wcześniejsze podobne podatności mogły być wykorzystywane przez otwieranie specjalnie przygotowanych stron w przeglądarkach, wywołujących funkcje JavaScript do kodowania wideo, lub przez manipulacje z WebRTC. Według przedstawicieli Google, podatność nie dotyczy silnika Chromium, ponieważ w funkcjach aom_img_alloc(), aom_img_wrap(), vpx_img_alloc() i vpx_img_wrap() przekazywane były tylko zweryfikowane wartości argumentów d_w i d_h. W Firefox do dekodowania AV1 używana jest biblioteka dav1d, ale do kodowania zastosowano libaom. Nie jest jasne, czy Firefox jest podatny na problem, ponieważ informacje o tym, jak podatność dotyczy konkretnych produktów, nie zostały jeszcze opublikowane.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster