Na biblioteca libaom, desenvolvida pela aliança Open Media (AOMedia), que fornece uma implementação de referência do formato de codificação de vídeo AV1, foi identificada uma vulnerabilidade crítica (CVE-2024-5171) que leva a um estouro de inteiro e gravação fora dos limites do buffer ao processar valores excessivamente grandes em alguns parâmetros. Uma vulnerabilidade semelhante (CVE-2024-5197) foi descoberta na biblioteca libvpx, que implementa os codecs VP8 e VP9. Os problemas foram corrigidos nas atualizações libaom 3.9.0 e libvpx 1.14.1. Nos distribuições as vulnerabilidades ainda permanecem sem correção (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD).
A vulnerabilidade na libaom foi classificada com o nível máximo de gravidade (10 de 10), sugerindo a possibilidade de exploração ao processar conteúdo especificamente formatado em aplicações que utilizam essa biblioteca. Para a libvpx, o nível de gravidade foi definido em 5.9 de 10, o que corresponde a condições de exploração limitadas. O principal risco das vulnerabilidades na libaom e libvpx é que essas bibliotecas são utilizadas em navegadores da web, reprodutores de mídia e serviços que realizam a transcodificação de vídeo.
A vulnerabilidade ocorre na libaom ao chamar as funções aom_img_alloc(), aom_img_wrap() ou om_img_alloc_with_border() com valores elevados nos parâmetros d_w, d_h e align, que levam a um estouro de inteiro ao calcular deslocamentos e tamanhos de buffers. Um estouro semelhante ocorre nas funções vpx_img_alloc() e vpx_img_wrap(). Essas funções são utilizadas na codificação de vídeo.
A maior ameaça da vulnerabilidade é a potencial possibilidade de ataques a navegadores, onde vulnerabilidades semelhantes no passado puderam ser exploradas ao abrir uma página especificamente formatada que chama funções JavaScript para codificação de vídeo no navegador, ou através de manipulações com WebRTC. Segundo representantes do Google, a vulnerabilidade não afeta o motor Chromium, pois nas funções aom_img_alloc(), aom_img_wrap(), vpx_img_alloc() e vpx_img_wrap() somente foram passados valores verificados para os argumentos d_w e d_h. No Firefox, a biblioteca dav1d é usada para decodificação de AV1, mas a libaom é utilizada para codificação. Se o Firefox é vulnerável ao problema ainda não está claro, já que informações sobre como a vulnerabilidade afeta produtos específicos ainda não foram publicadas.
Fonte: opennet.ru
