In de door het Open Media (AOMedia) consortium ontwikkelde bibliotheek libaom, die een referentie-implementatie biedt voor het videocodeerformaat AV1, is een kritieke kwetsbaarheid (CVE-2024-5171) ontdekt, die leidt tot een integer overflow en het schrijven buiten de grenzen van de buffer bij het verwerken van te grote waarden in bepaalde parameters. Een soortgelijke kwetsbaarheid (CVE-2024-5197) is ontdekt in de libvpx-bibliotheek, die codecs VP8 en VP9 implementeert. De problemen zijn verholpen in de updates van libaom 3.9.0 en libvpx 1.14.1. In de distributies blijven de kwetsbaarheden echter nog onopgelost (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD).
De kwetsbaarheden in libaom hebben het maximale gevaarlijkheidsniveau (10 uit 10) gekregen, wat betekent dat ze kunnen worden uitgebuit bij het verwerken van speciaal gevormde inhoud in applicaties die deze bibliotheek gebruiken. In libvpx is het gevaarlijkheidsniveau vastgesteld op 5.9 uit 10, wat overeenkomt met beperkte exploitatiemogelijkheden. De grootste bedreiging van de kwetsbaarheden in libaom en libvpx komt doordat deze bibliotheken worden gebruikt in webbrowsers, mediaspelers en diensten die video opnieuw coderen.
De kwetsbaarheid manifesteert zich in libaom bij het aanroepen van de functies aom_img_alloc(), aom_img_wrap() of aom_img_alloc_with_border() met grote waarden in de parameters d_w, d_h en align, wat leidt tot een integer overflow bij het berekenen van offsets en groottes van buffers. Een soortgelijke overflow treedt op in de functies vpx_img_alloc() en vpx_img_wrap(). De genoemde functies worden gebruikt bij het coderen van video.
De kwetsbaarheid vormt de grootste bedreiging door de potentiƫle mogelijkheid van aanvallen op browsers, waarin eerdere soortgelijke kwetsbaarheden konden worden uitgebuit door een speciaal ontworpen pagina in de browser te openen, die JavaScript-functies voor video-codering oproept, of door manipulaties met WebRTC. Volgens vertegenwoordigers van Google raakt de kwetsbaarheid de Chromium-engine niet, aangezien alleen gevalideerde waarden voor de argumenten d_w en d_h werden doorgegeven in de functies aom_img_alloc(), aom_img_wrap(), vpx_img_alloc() en vpx_img_wrap(). In Firefox wordt de bibliotheek dav1d gebruikt voor het decoderen van AV1, maar voor het coderen wordt libaom gebruikt. Of Firefox kwetsbaar is, is nog niet duidelijk, aangezien informatie over hoe de kwetsbaarheid specifieke producten raakt nog niet is gepubliceerd.
Bron: opennet.ru
