FFmpeg corrige la faille PixelSmash dans son décodeur vidéo très répandu

FFmpeg corrige la faille PixelSmash dans son décodeur vidéo très répandu

Une faille récemment révélée dans FFmpeg, baptisée PixelSmash, peut être exploitée pour exécuter du code à distance sur des serveurs Jellyfin dans des conditions spécifiques. Elle peut aussi provoquer un déni de service dans des applications comme Kodi, Emby, Nextcloud, PhotoPrism et OBS Studio.

Cette vulnérabilité, référencée sous le code CVE-2026-8461, correspond à une écriture hors limites dans le tas du décodeur MagicYUV. Elle a obtenu un score de gravité élevé de 8,8. Un fichier vidéo malveillant aux formats AVI, MKV ou MOV sert de vecteur d’attaque.

Toute application qui utilise libavcodec, la bibliothèque principale de FFmpeg pour le décodage et l’encodage vidéo, est considérée comme vulnérable.

L’exploitation pour une exécution de code à distance n’est toutefois réalisable que si la protection ASLR est désactivée, ou si une autre faille est combinée pour la contourner.

Cause et conséquences

Des chercheurs de la société de sécurité JFrog indiquent que PixelSmash provient de la façon dont MagicYUV traite les tranches, qui sont des régions indépendantes d’une image vidéo.

« La vulnérabilité est un dépassement de tampon sur une ligne du tas dans la gestion des tranches du décodeur MagicYUV. Elle est causée par une incohérence entre le calcul des hauteurs des plans de chrominance par l’allocateur d’images et par le décodeur », précise JFrog.

Organisation du tas mémoire

Source : JFrog

L’attaque peut se déclencher quand un utilisateur ouvre un fichier vidéo AVI, MKV ou MOV, parcourt un dossier qui le contient, ou lance un flux de traitement médiatique automatisé.

JFrog a constaté que de nombreuses applications médias populaires, comme Kodi, OBS Studio, PhotoPrism et les générateurs de miniatures de GNOME, KDE ou XFCE, utilisent FFmpeg avec le décodeur MagicYUV activé.

Slack, Discord, Telegram et WhatsApp pourraient aussi être exposés, car ils utilisent FFmpeg pour créer des aperçus vidéo côté serveur, mais ils n’ont pas été testés.

Chaine d'approvisionnement logicielle

Source : JFrog

Le chercheur principal de JFrog, Yuval Moravchick, a montré que PixelSmash permet une exécution de code à distance sur des instances de Jellyfin et de Nextcloud.

« Pour illustrer l’impact concret, nous avons obtenu une exécution de code à distance complète contre un serveur média Jellyfin 10.11.9. Le chemin d’attaque était le suivant : téléchargement d’un fichier AVI MagicYUV préparé dans la bibliothèque média -> Jellyfin lance automatiquement ffprobe pour extraire les métadonnées -> l’écriture hors limites se produit -> AVBuffer.free est détourné vers system() -> une commande arbitraire s’exécute avec les droits de l’utilisateur du service jellyfin », explique JFrog.

Moravchick précise que cette exploitation nécessite que l’ASLR soit désactivée, et que la seule faille CVE-2026-8461 ne permet pas de contourner cette protection mémoire.

En théorie, un bug de fuite d’information dans le décodeur FlashSV de FFmpeg pourrait être combiné avec PixelSmash pour contourner l’ASLR.

Un autre scénario d’attaque passe par des téléchargements torrent et ne nécessite aucune interaction de l’utilisateur. Un attaquant pourrait diffuser une vidéo malveillante qui cible les utilisateurs de Jellyfin qui pointent leurs téléchargements vers le dossier de la bibliothèque média de l’application.

Même quand l’exécution de code à distance est empêchée, la vulnérabilité CVE-2026-8461 suffit à provoquer de manière fiable un déni de service sur les cibles vulnérables.

Les chercheurs ont trouvé que Plex, le serveur média très populaire, utilise une version personnalisée de FFmpeg où les décodeurs sont désactivés et une liste blanche minimale est active, ce qui atténue le risque.

Outre la publication de FFmpeg 8.1.2 qui corrige la faille, Jellyfin a aussi mis à jour sa version embarquée de FFmpeg. PhotoPrism travaille à l’ajout d’une liste noire de formats de fichiers pour prévenir toute exploitation.

L’équipe Nextcloud a reçu le rapport via HackerOne, mais a décliné la correction car la faille se situe en dehors de son périmètre.

JFrog a découvert PixelSmash et l’a signalé à l’équipe de sécurité de FFmpeg le 13 mai. Le développeur a résolu le problème dans la version 8.1.2, publiée le 17 juin.

Les chercheurs avertissent que PixelSmash présente une surface d’attaque très étendue car le décodeur MagicYUV est présent dans des centaines de projets qui font confiance à FFmpeg pour traiter des entrées non fiables, ce qui transforme la vulnérabilité en un problème de chaîne d’approvisionnement logicielle.