В разработената от алианса Open Media (AOMedia) библиотека libaom, която предоставя еталонна реализация на формата за кодиране на видео AV1, е открита критична уязвимост (CVE-2024-5171), водеща до целочислено препълване и запис извън границите на буфера при обработка на твърде големи стойности в някои параметри. Подобна уязвимост (CVE-2024-5197) е открита в библиотеката libvpx с реализация на кодеците VP8 и VP9. Проблемите са отстранени в актуализациите libaom 3.9.0 и libvpx 1.14.1. В дистрибуциите уязвимостите все още остават неизправени (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD).
Уязвимостите в libaom имат максимален ниво на опасност (10 от 10), което предполага възможност за експлоатация при обработка в приложения, използващи тази библиотека, на специално форматиран съдържание. В libvpx нивото на опасност е оценено на 5.9 от 10, което съответства на ограничени условия за експлоатация. Основната опасност от уязвимостите в libaom и libvpx е, че тези библиотеки се използват в уеб браузъри, медиаплеъри и услуги, които извършват преподреждане на видео.
Уязвимостта се проявява в libaom при извикване на функциите aom_img_alloc(), aom_img_wrap() или aom_img_alloc_with_border() с големи стойности на параметрите d_w, d_h и align, които водят до целочислено препълване при изчисление на отмествания и размери на буферите. Подобно препълване възниква и в функциите vpx_img_alloc() и vpx_img_wrap(). Посочените функции се използват при кодиране на видео.
Уязвимостта представлява най-голяма опасност поради потенциалната възможност за атака на браузри, при които предишни подобни уязвимости могат да бъдат експлоатирани чрез отваряне на уеб страница с определен формат, която извиква JavaScript функции за кодиране на видео, или чрез манипулации с WebRTC. Според представители на Google уязвимостта не засяга мотора Chromium, тъй като в функциите aom_img_alloc(), aom_img_wrap(), vpx_img_alloc() и vpx_img_wrap() са предавани само проверени стойности на аргументите d_w и d_h. В Firefox за декодиране на AV1 се използва библиотеката dav1d, но за кодиране се прилага libaom. Все още не е ясно дали Firefox е засегнат от проблема, тъй като информацията за това как уязвимостта засяга конкретни продукти не е публикувана.
Източник: opennet.ru
